naming conventions act 2: the end
This commit is contained in:
337
code/level.lua
337
code/level.lua
@@ -1,6 +1,6 @@
|
||||
function LevelLoadTiles()
|
||||
function loadLevelTiles()
|
||||
math.randomseed(3)
|
||||
LevelData = dofile("data/levels/"..currLevel)
|
||||
LevelData = dofile("data/levels/"..level_current)
|
||||
|
||||
--[[
|
||||
on level format:
|
||||
@@ -12,19 +12,19 @@ function LevelLoadTiles()
|
||||
overlay_depth = foreground/background overlay depth
|
||||
type = collision type
|
||||
]]
|
||||
LevelGetTileData()
|
||||
getLevelTileData()
|
||||
LevelTiles = LevelData.tiles
|
||||
LevelUpdateDimensions()
|
||||
LevelIndexTiles()
|
||||
TileCreateObjects()
|
||||
updateLevelDimensions()
|
||||
indexLevelTiles()
|
||||
createTileObjects()
|
||||
end
|
||||
|
||||
|
||||
function LevelExpandCanvas(horizontal,vertical)
|
||||
function expandLevelCanvas(horizontal,vertical)
|
||||
local horizontal = horizontal or 0
|
||||
local vertical = vertical or 0
|
||||
local h = LevelGetTileWidth()
|
||||
local v = LevelGetTileHeight()
|
||||
local h = getLevelTileWidth()
|
||||
local v = getLevelTileHeight()
|
||||
|
||||
-- get new canvas size
|
||||
local newCanvasH = h + math.abs(horizontal)
|
||||
@@ -35,7 +35,7 @@ function LevelExpandCanvas(horizontal,vertical)
|
||||
for i = 1, newCanvasV do
|
||||
ExpandedLevel[i] = {}
|
||||
for j = 1, newCanvasH do
|
||||
ExpandedLevel[i][j] = InstanceTile(0)
|
||||
ExpandedLevel[i][j] = instanceTile(0)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -53,7 +53,7 @@ function LevelExpandCanvas(horizontal,vertical)
|
||||
-- get data from old canvas to new canvas
|
||||
for i = 1, #LevelTiles do
|
||||
for j = 1, #LevelTiles[i] do
|
||||
ExpandedLevel[i+expand_v][j+expand_h] = InstanceTile(LevelTiles[i][j].id)
|
||||
ExpandedLevel[i+expand_v][j+expand_h] = instanceTile(LevelTiles[i][j].id)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -62,11 +62,11 @@ function LevelExpandCanvas(horizontal,vertical)
|
||||
end
|
||||
|
||||
|
||||
function LevelReduceCanvas(horizontal,vertical)
|
||||
function reduceLevelCanvas(horizontal,vertical)
|
||||
local horizontal = horizontal or 0
|
||||
local vertical = vertical or 0
|
||||
local h = LevelGetTileWidth()
|
||||
local v = LevelGetTileHeight()
|
||||
local h = getLevelTileWidth()
|
||||
local v = getLevelTileHeight()
|
||||
|
||||
-- get new canvas size
|
||||
local newCanvasH = h - math.abs(horizontal)
|
||||
@@ -77,7 +77,7 @@ function LevelReduceCanvas(horizontal,vertical)
|
||||
for i = 1, newCanvasV do
|
||||
ExpandedLevel[i] = {}
|
||||
for j = 1, newCanvasH do
|
||||
ExpandedLevel[i][j] = InstanceTile(0)
|
||||
ExpandedLevel[i][j] = instanceTile(0)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -95,17 +95,17 @@ function LevelReduceCanvas(horizontal,vertical)
|
||||
-- get data from old canvas to new canvas
|
||||
for i = 1, #ExpandedLevel do
|
||||
for j = 1, #ExpandedLevel[i] do
|
||||
ExpandedLevel[i][j] = InstanceTile(LevelTiles[i+expand_v][j+expand_h].id)
|
||||
ExpandedLevel[i][j] = instanceTile(LevelTiles[i+expand_v][j+expand_h].id)
|
||||
end
|
||||
end
|
||||
|
||||
-- use new canvas
|
||||
LevelTiles = ExpandedLevel
|
||||
|
||||
LevelExpandCanvas()
|
||||
expandLevelCanvas()
|
||||
end
|
||||
|
||||
function LevelGetTileData()
|
||||
function getLevelTileData()
|
||||
for k, v in pairs(tileset) do
|
||||
if v == LevelData.tileset then
|
||||
TileData = dofile("data/tileset/"..k..".lua")
|
||||
@@ -113,20 +113,20 @@ function LevelGetTileData()
|
||||
end
|
||||
end
|
||||
|
||||
function LevelReloadTiles()
|
||||
LevelUpdateDimensions()
|
||||
function reloadLevelTiles()
|
||||
updateLevelDimensions()
|
||||
end
|
||||
|
||||
function LevelUpdateDimensions()
|
||||
LevelData.Width = LevelGetWidth()
|
||||
LevelData.Height = LevelGetHeight()
|
||||
function updateLevelDimensions()
|
||||
LevelData.Width = getLevelWidth()
|
||||
LevelData.Height = getLevelHeight()
|
||||
end
|
||||
|
||||
function LevelGetTileHeight()
|
||||
function getLevelTileHeight()
|
||||
return #LevelTiles
|
||||
end
|
||||
|
||||
function LevelGetTileWidth()
|
||||
function getLevelTileWidth()
|
||||
local width = 0
|
||||
for i = 1, #LevelTiles do
|
||||
if width < #LevelTiles[i] then width = #LevelTiles[i] end
|
||||
@@ -134,42 +134,42 @@ function LevelGetTileWidth()
|
||||
return width
|
||||
end
|
||||
|
||||
function LevelGetHeight()
|
||||
return LevelGetTileHeight() * tileProperties.height
|
||||
function getLevelHeight()
|
||||
return getLevelTileHeight() * tile_properties.height
|
||||
end
|
||||
|
||||
function LevelGetWidth()
|
||||
return LevelGetTileWidth() * tileProperties.width
|
||||
function getLevelWidth()
|
||||
return getLevelTileWidth() * tile_properties.width
|
||||
end
|
||||
|
||||
function LevelIndexTiles()
|
||||
function indexLevelTiles()
|
||||
TileIndex = {}
|
||||
|
||||
-- index from tileset
|
||||
local width = LevelData.tileset:getPixelWidth()/tileProperties.width
|
||||
local height = LevelData.tileset:getPixelHeight()/tileProperties.height
|
||||
local width = LevelData.tileset:getPixelWidth()/tile_properties.width
|
||||
local height = LevelData.tileset:getPixelHeight()/tile_properties.height
|
||||
for i = 0, height do
|
||||
for j = 0, width do
|
||||
TileIndex[i*width+j+1] = love.graphics.newQuad(
|
||||
j*tileProperties.width,
|
||||
i*tileProperties.height,
|
||||
tileProperties.width,
|
||||
tileProperties.height,
|
||||
j*tile_properties.width,
|
||||
i*tile_properties.height,
|
||||
tile_properties.width,
|
||||
tile_properties.height,
|
||||
LevelData.tileset:getDimensions()
|
||||
)
|
||||
end
|
||||
end
|
||||
TileDataInitialize()
|
||||
initTileData()
|
||||
|
||||
-- instance level tiles according to the Properties
|
||||
for i = 1, #LevelTiles do
|
||||
for j = 1, #LevelTiles[i] do
|
||||
SetTile(i,j,LevelTiles[i][j])
|
||||
setTile(i,j,LevelTiles[i][j])
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function TileDataInitialize()
|
||||
function initTileData()
|
||||
for _, Properties in pairs(TileData) do
|
||||
if Properties.animation ~= nil then
|
||||
Properties.tileset = love.graphics.newImage("assets/terrain/"..Properties.animation..".png")
|
||||
@@ -178,18 +178,18 @@ function TileDataInitialize()
|
||||
Properties.current_subimage = 1
|
||||
|
||||
local tileset = Properties.tileset
|
||||
local width = tileset:getPixelWidth()/tileProperties.width
|
||||
local height = tileset:getPixelHeight()/tileProperties.height
|
||||
local width = tileset:getPixelWidth()/tile_properties.width
|
||||
local height = tileset:getPixelHeight()/tile_properties.height
|
||||
local image_count = 0
|
||||
|
||||
for i = 0, height-1 do
|
||||
for j = 0, width-1 do
|
||||
local quad =
|
||||
love.graphics.newQuad(
|
||||
j*tileProperties.width,
|
||||
i*tileProperties.height,
|
||||
tileProperties.width,
|
||||
tileProperties.height,
|
||||
j*tile_properties.width,
|
||||
i*tile_properties.height,
|
||||
tile_properties.width,
|
||||
tile_properties.height,
|
||||
tileset:getDimensions()
|
||||
)
|
||||
image_count = image_count + 1
|
||||
@@ -202,7 +202,7 @@ function TileDataInitialize()
|
||||
end
|
||||
end
|
||||
|
||||
function InstanceTile(id)
|
||||
function instanceTile(id)
|
||||
local tile = {}
|
||||
|
||||
tile.id = id
|
||||
@@ -225,8 +225,8 @@ function InstanceTile(id)
|
||||
return tile
|
||||
end
|
||||
|
||||
function SetTile(i,j,id)
|
||||
LevelTiles[i][j] = InstanceTile(id)
|
||||
function setTile(i,j,id)
|
||||
LevelTiles[i][j] = instanceTile(id)
|
||||
end
|
||||
|
||||
function drawGridDisplay()
|
||||
@@ -234,16 +234,16 @@ function drawGridDisplay()
|
||||
for j = 1, #LevelTiles[i] do
|
||||
love.graphics.rectangle(
|
||||
"line",
|
||||
tileProperties.scale * (j * tileProperties.width + (levelProperties.offset.x - tileProperties.width)) - Camera.pos.x,
|
||||
tileProperties.scale * (i * tileProperties.height + (levelProperties.offset.y - tileProperties.height)) - Camera.pos.y,
|
||||
tileProperties.scale * tileProperties.width,
|
||||
tileProperties.scale * tileProperties.height
|
||||
tile_properties.scale * (j * tile_properties.width + (level_properties.offset.x - tile_properties.width)) - Camera.pos.x,
|
||||
tile_properties.scale * (i * tile_properties.height + (level_properties.offset.y - tile_properties.height)) - Camera.pos.y,
|
||||
tile_properties.scale * tile_properties.width,
|
||||
tile_properties.scale * tile_properties.height
|
||||
)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function TileOptimizeObjects()
|
||||
function optimizeTileObjects()
|
||||
logPrint("Optimizing Objects...")
|
||||
local unoptimized = 0
|
||||
local isTileOptimized = {}
|
||||
@@ -313,14 +313,14 @@ function TileOptimizeObjects()
|
||||
|
||||
logPrint("- Group size: "..m.."x"..n)
|
||||
unoptimized = unoptimized + m * n
|
||||
local base_x = tileProperties.scale * j * tileProperties.width + tileProperties.scale * (levelProperties.offset.x - tileProperties.height)
|
||||
local base_y = tileProperties.scale * i * tileProperties.height + tileProperties.scale * (levelProperties.offset.y - tileProperties.height)
|
||||
local base_x = tile_properties.scale * j * tile_properties.width + tile_properties.scale * (level_properties.offset.x - tile_properties.height)
|
||||
local base_y = tile_properties.scale * i * tile_properties.height + tile_properties.scale * (level_properties.offset.y - tile_properties.height)
|
||||
|
||||
local col = Collision:new(
|
||||
base_x,
|
||||
base_y,
|
||||
base_x + tileProperties.width * tileProperties.scale * n,
|
||||
base_y + tileProperties.height * tileProperties.scale * m
|
||||
base_x + tile_properties.width * tile_properties.scale * n,
|
||||
base_y + tile_properties.height * tile_properties.scale * m
|
||||
)
|
||||
table.insert(LoadedObjects.Collisions,col)
|
||||
end
|
||||
@@ -331,13 +331,13 @@ function TileOptimizeObjects()
|
||||
logPrint("collisions optimized from " .. unoptimized .. " to " .. #LoadedObjects.Collisions)
|
||||
end
|
||||
|
||||
function TileCreateObjects()
|
||||
function createTileObjects()
|
||||
LoadedObjects.Collisions = {}
|
||||
LoadedObjects.Platforms = {}
|
||||
LoadedObjects.Ladders = {}
|
||||
LoadedObjects.Hazards = {}
|
||||
|
||||
TileOptimizeObjects()
|
||||
optimizeTileObjects()
|
||||
|
||||
for i = 1, #LevelTiles do
|
||||
for j = 1, #LevelTiles[i] do
|
||||
@@ -345,14 +345,14 @@ function TileCreateObjects()
|
||||
|
||||
local type = TileData[LevelTiles[i][j].id].type
|
||||
local light = TileData[LevelTiles[i][j].id].light
|
||||
local base_x = tileProperties.scale * j * tileProperties.width + tileProperties.scale * (levelProperties.offset.x - tileProperties.height)
|
||||
local base_y = tileProperties.scale * i * tileProperties.height + tileProperties.scale * (levelProperties.offset.y - tileProperties.height)
|
||||
local base_x = tile_properties.scale * j * tile_properties.width + tile_properties.scale * (level_properties.offset.x - tile_properties.height)
|
||||
local base_y = tile_properties.scale * i * tile_properties.height + tile_properties.scale * (level_properties.offset.y - tile_properties.height)
|
||||
|
||||
|
||||
if light ~= 0 and light ~= nil then
|
||||
CreateLight(
|
||||
base_x + tileProperties.width/2 * tileProperties.scale,
|
||||
base_y + tileProperties.height/2 * tileProperties.scale,
|
||||
base_x + tile_properties.width/2 * tile_properties.scale,
|
||||
base_y + tile_properties.height/2 * tile_properties.scale,
|
||||
light
|
||||
)
|
||||
end
|
||||
@@ -362,17 +362,17 @@ function TileCreateObjects()
|
||||
local col = Collision:new(
|
||||
base_x,
|
||||
base_y,
|
||||
base_x + tileProperties.width * tileProperties.scale,
|
||||
base_y + tileProperties.height * tileProperties.scale
|
||||
base_x + tile_properties.width * tile_properties.scale,
|
||||
base_y + tile_properties.height * tile_properties.scale
|
||||
)
|
||||
table.insert(LoadedObjects.Collisions,col)
|
||||
else]]if type == "half_bottom" then
|
||||
|
||||
local col = Collision:new(
|
||||
base_x,
|
||||
base_y + tileProperties.height/2 * tileProperties.scale,
|
||||
base_x + tileProperties.width * tileProperties.scale,
|
||||
base_y + tileProperties.height * tileProperties.scale
|
||||
base_y + tile_properties.height/2 * tile_properties.scale,
|
||||
base_x + tile_properties.width * tile_properties.scale,
|
||||
base_y + tile_properties.height * tile_properties.scale
|
||||
)
|
||||
table.insert(LoadedObjects.Collisions,col)
|
||||
|
||||
@@ -381,18 +381,18 @@ function TileCreateObjects()
|
||||
local col = Collision:new(
|
||||
base_x,
|
||||
base_y ,
|
||||
base_x + tileProperties.width * tileProperties.scale,
|
||||
base_y + tileProperties.height/2 * tileProperties.scale
|
||||
base_x + tile_properties.width * tile_properties.scale,
|
||||
base_y + tile_properties.height/2 * tile_properties.scale
|
||||
)
|
||||
table.insert(LoadedObjects.Collisions,col)
|
||||
|
||||
elseif type == "half_right" then
|
||||
|
||||
local col = Collision:new(
|
||||
base_x + tileProperties.height/2 * tileProperties.scale,
|
||||
base_x + tile_properties.height/2 * tile_properties.scale,
|
||||
base_y,
|
||||
base_x + tileProperties.width * tileProperties.scale,
|
||||
base_y + tileProperties.height * tileProperties.scale
|
||||
base_x + tile_properties.width * tile_properties.scale,
|
||||
base_y + tile_properties.height * tile_properties.scale
|
||||
)
|
||||
table.insert(LoadedObjects.Collisions,col)
|
||||
|
||||
@@ -401,17 +401,17 @@ function TileCreateObjects()
|
||||
local col = Collision:new(
|
||||
base_x,
|
||||
base_y,
|
||||
base_x + tileProperties.height/2 * tileProperties.scale,
|
||||
base_y + tileProperties.height * tileProperties.scale
|
||||
base_x + tile_properties.height/2 * tile_properties.scale,
|
||||
base_y + tile_properties.height * tile_properties.scale
|
||||
)
|
||||
table.insert(LoadedObjects.Collisions,col)
|
||||
|
||||
elseif type == "platform" then
|
||||
local plat = Collision:new(
|
||||
base_x,
|
||||
base_y + tileProperties.scale * 2,
|
||||
base_x + tileProperties.width * tileProperties.scale,
|
||||
base_y + tileProperties.height/4 * tileProperties.scale + tileProperties.scale * 2
|
||||
base_y + tile_properties.scale * 2,
|
||||
base_x + tile_properties.width * tile_properties.scale,
|
||||
base_y + tile_properties.height/4 * tile_properties.scale + tile_properties.scale * 2
|
||||
)
|
||||
table.insert(LoadedObjects.Platforms,plat)
|
||||
|
||||
@@ -420,9 +420,9 @@ function TileCreateObjects()
|
||||
-- do ramp owo
|
||||
local slope = Collision:new(
|
||||
base_x,
|
||||
base_y + k * tileProperties.scale - tileProperties.scale,
|
||||
base_x + k * 2 * tileProperties.scale,
|
||||
base_y + k * tileProperties.scale
|
||||
base_y + k * tile_properties.scale - tile_properties.scale,
|
||||
base_x + k * 2 * tile_properties.scale,
|
||||
base_y + k * tile_properties.scale
|
||||
)
|
||||
table.insert(LoadedObjects.Collisions,slope)
|
||||
|
||||
@@ -430,9 +430,9 @@ function TileCreateObjects()
|
||||
-- fill lower half
|
||||
local col = Collision:new(
|
||||
base_x,
|
||||
base_y + tileProperties.height/2 * tileProperties.scale,
|
||||
base_x + tileProperties.width * tileProperties.scale,
|
||||
base_y + tileProperties.height * tileProperties.scale
|
||||
base_y + tile_properties.height/2 * tile_properties.scale,
|
||||
base_x + tile_properties.width * tile_properties.scale,
|
||||
base_y + tile_properties.height * tile_properties.scale
|
||||
)
|
||||
table.insert(LoadedObjects.Collisions,col)
|
||||
|
||||
@@ -441,9 +441,9 @@ function TileCreateObjects()
|
||||
-- do ramp owo
|
||||
local slope = Collision:new(
|
||||
base_x,
|
||||
base_y + tileProperties.height/2 * tileProperties.scale + k * tileProperties.scale - tileProperties.scale,
|
||||
base_x + k * 2 * tileProperties.scale,
|
||||
base_y + tileProperties.height/2 * tileProperties.scale + k * tileProperties.scale
|
||||
base_y + tile_properties.height/2 * tile_properties.scale + k * tile_properties.scale - tile_properties.scale,
|
||||
base_x + k * 2 * tile_properties.scale,
|
||||
base_y + tile_properties.height/2 * tile_properties.scale + k * tile_properties.scale
|
||||
)
|
||||
table.insert(LoadedObjects.Collisions,slope)
|
||||
|
||||
@@ -454,9 +454,9 @@ function TileCreateObjects()
|
||||
-- do ramp owo
|
||||
local slope = Collision:new(
|
||||
base_x,
|
||||
base_y + tileProperties.height/2 * tileProperties.scale - tileProperties.scale + k * tileProperties.scale,
|
||||
base_x + tileProperties.width * tileProperties.scale - (k-1) * 2 * tileProperties.scale,
|
||||
base_y + tileProperties.height/2 * tileProperties.scale - tileProperties.scale + k * tileProperties.scale + tileProperties.scale
|
||||
base_y + tile_properties.height/2 * tile_properties.scale - tile_properties.scale + k * tile_properties.scale,
|
||||
base_x + tile_properties.width * tile_properties.scale - (k-1) * 2 * tile_properties.scale,
|
||||
base_y + tile_properties.height/2 * tile_properties.scale - tile_properties.scale + k * tile_properties.scale + tile_properties.scale
|
||||
)
|
||||
table.insert(LoadedObjects.Collisions,slope)
|
||||
|
||||
@@ -465,8 +465,8 @@ function TileCreateObjects()
|
||||
local col = Collision:new(
|
||||
base_x,
|
||||
base_y,
|
||||
base_x + tileProperties.width * tileProperties.scale,
|
||||
base_y + tileProperties.height/2 * tileProperties.scale
|
||||
base_x + tile_properties.width * tile_properties.scale,
|
||||
base_y + tile_properties.height/2 * tile_properties.scale
|
||||
)
|
||||
table.insert(LoadedObjects.Collisions,col)
|
||||
|
||||
@@ -475,9 +475,9 @@ function TileCreateObjects()
|
||||
-- do ramp owo
|
||||
local slope = Collision:new(
|
||||
base_x,
|
||||
base_y - tileProperties.scale + k * tileProperties.scale,
|
||||
base_x + tileProperties.width * tileProperties.scale - (k-1) * 2 * tileProperties.scale,
|
||||
base_y - tileProperties.scale + k * tileProperties.scale + tileProperties.scale
|
||||
base_y - tile_properties.scale + k * tile_properties.scale,
|
||||
base_x + tile_properties.width * tile_properties.scale - (k-1) * 2 * tile_properties.scale,
|
||||
base_y - tile_properties.scale + k * tile_properties.scale + tile_properties.scale
|
||||
)
|
||||
table.insert(LoadedObjects.Collisions,slope)
|
||||
|
||||
@@ -487,10 +487,10 @@ function TileCreateObjects()
|
||||
for k = 1, 8 do
|
||||
-- do ramp owo
|
||||
local slope = Collision:new(
|
||||
base_x + (k-8) * -2 * tileProperties.scale,
|
||||
base_y - tileProperties.scale + k * tileProperties.scale,
|
||||
base_x + tileProperties.width * tileProperties.scale,
|
||||
base_y - tileProperties.scale + k * tileProperties.scale + tileProperties.scale
|
||||
base_x + (k-8) * -2 * tile_properties.scale,
|
||||
base_y - tile_properties.scale + k * tile_properties.scale,
|
||||
base_x + tile_properties.width * tile_properties.scale,
|
||||
base_y - tile_properties.scale + k * tile_properties.scale + tile_properties.scale
|
||||
)
|
||||
table.insert(LoadedObjects.Collisions,slope)
|
||||
|
||||
@@ -498,9 +498,9 @@ function TileCreateObjects()
|
||||
-- fill lower half
|
||||
local col = Collision:new(
|
||||
base_x,
|
||||
base_y + tileProperties.height/2 * tileProperties.scale,
|
||||
base_x + tileProperties.width * tileProperties.scale,
|
||||
base_y + tileProperties.height * tileProperties.scale
|
||||
base_y + tile_properties.height/2 * tile_properties.scale,
|
||||
base_x + tile_properties.width * tile_properties.scale,
|
||||
base_y + tile_properties.height * tile_properties.scale
|
||||
)
|
||||
table.insert(LoadedObjects.Collisions,col)
|
||||
|
||||
@@ -508,10 +508,10 @@ function TileCreateObjects()
|
||||
for k = 1, 8 do
|
||||
-- do ramp owo
|
||||
local slope = Collision:new(
|
||||
base_x + (k-8) * -2 * tileProperties.scale,
|
||||
base_y + tileProperties.height/2 * tileProperties.scale - tileProperties.scale + k * tileProperties.scale,
|
||||
base_x + tileProperties.width * tileProperties.scale,
|
||||
base_y + tileProperties.height/2 * tileProperties.scale - tileProperties.scale + k * tileProperties.scale + tileProperties.scale
|
||||
base_x + (k-8) * -2 * tile_properties.scale,
|
||||
base_y + tile_properties.height/2 * tile_properties.scale - tile_properties.scale + k * tile_properties.scale,
|
||||
base_x + tile_properties.width * tile_properties.scale,
|
||||
base_y + tile_properties.height/2 * tile_properties.scale - tile_properties.scale + k * tile_properties.scale + tile_properties.scale
|
||||
)
|
||||
table.insert(LoadedObjects.Collisions,slope)
|
||||
|
||||
@@ -521,10 +521,10 @@ function TileCreateObjects()
|
||||
for k = 1, 8 do
|
||||
-- do ramp owo
|
||||
local slope = Collision:new(
|
||||
base_x + (k-8) * -2 * tileProperties.scale,
|
||||
base_y + tileProperties.height/2 * tileProperties.scale - k * tileProperties.scale,
|
||||
base_x + tileProperties.width * tileProperties.scale,
|
||||
base_y + tileProperties.height/2 * tileProperties.scale - k * tileProperties.scale + tileProperties.scale
|
||||
base_x + (k-8) * -2 * tile_properties.scale,
|
||||
base_y + tile_properties.height/2 * tile_properties.scale - k * tile_properties.scale,
|
||||
base_x + tile_properties.width * tile_properties.scale,
|
||||
base_y + tile_properties.height/2 * tile_properties.scale - k * tile_properties.scale + tile_properties.scale
|
||||
)
|
||||
table.insert(LoadedObjects.Collisions,slope)
|
||||
|
||||
@@ -534,10 +534,10 @@ function TileCreateObjects()
|
||||
for k = 1, 8 do
|
||||
-- do ramp owo
|
||||
local slope = Collision:new(
|
||||
base_x + (k-8) * -2 * tileProperties.scale,
|
||||
base_y + tileProperties.height/2 * tileProperties.scale + tileProperties.height/2 * tileProperties.scale - k * tileProperties.scale,
|
||||
base_x + tileProperties.width * tileProperties.scale,
|
||||
base_y + tileProperties.height/2 * tileProperties.scale + tileProperties.height/2 * tileProperties.scale - k * tileProperties.scale + tileProperties.scale
|
||||
base_x + (k-8) * -2 * tile_properties.scale,
|
||||
base_y + tile_properties.height/2 * tile_properties.scale + tile_properties.height/2 * tile_properties.scale - k * tile_properties.scale,
|
||||
base_x + tile_properties.width * tile_properties.scale,
|
||||
base_y + tile_properties.height/2 * tile_properties.scale + tile_properties.height/2 * tile_properties.scale - k * tile_properties.scale + tile_properties.scale
|
||||
)
|
||||
table.insert(LoadedObjects.Collisions,slope)
|
||||
|
||||
@@ -546,8 +546,8 @@ function TileCreateObjects()
|
||||
local col = Collision:new(
|
||||
base_x,
|
||||
base_y,
|
||||
base_x + tileProperties.width * tileProperties.scale,
|
||||
base_y + tileProperties.height/2 * tileProperties.scale
|
||||
base_x + tile_properties.width * tile_properties.scale,
|
||||
base_y + tile_properties.height/2 * tile_properties.scale
|
||||
)
|
||||
table.insert(LoadedObjects.Collisions,col)
|
||||
|
||||
@@ -557,9 +557,9 @@ function TileCreateObjects()
|
||||
-- do ramp owo
|
||||
local slope = Collision:new(
|
||||
base_x,
|
||||
base_y + k * tileProperties.scale - tileProperties.scale,
|
||||
base_x + k * tileProperties.scale,
|
||||
base_y + k * tileProperties.scale
|
||||
base_y + k * tile_properties.scale - tile_properties.scale,
|
||||
base_x + k * tile_properties.scale,
|
||||
base_y + k * tile_properties.scale
|
||||
)
|
||||
table.insert(LoadedObjects.Collisions,slope)
|
||||
|
||||
@@ -568,28 +568,28 @@ function TileCreateObjects()
|
||||
elseif type == "ladder_right" then
|
||||
|
||||
local ladder = Collision:new(
|
||||
base_x + (tileProperties.width-4)* tileProperties.scale,
|
||||
base_x + (tile_properties.width-4)* tile_properties.scale,
|
||||
base_y,
|
||||
base_x + tileProperties.width * tileProperties.scale,
|
||||
base_y + tileProperties.height * tileProperties.scale
|
||||
base_x + tile_properties.width * tile_properties.scale,
|
||||
base_y + tile_properties.height * tile_properties.scale
|
||||
)
|
||||
table.insert(LoadedObjects.Ladders,ladder)
|
||||
|
||||
elseif type == "ladder_platform_right" then
|
||||
|
||||
local ladder = Collision:new(
|
||||
base_x + (tileProperties.width-4)* tileProperties.scale,
|
||||
base_y + tileProperties.scale * 2,
|
||||
base_x + tileProperties.width * tileProperties.scale,
|
||||
base_y + tileProperties.height * tileProperties.scale
|
||||
base_x + (tile_properties.width-4)* tile_properties.scale,
|
||||
base_y + tile_properties.scale * 2,
|
||||
base_x + tile_properties.width * tile_properties.scale,
|
||||
base_y + tile_properties.height * tile_properties.scale
|
||||
)
|
||||
table.insert(LoadedObjects.Ladders,ladder)
|
||||
|
||||
local plat = Collision:new(
|
||||
base_x,
|
||||
base_y + tileProperties.scale * 2,
|
||||
base_x + tileProperties.width * tileProperties.scale,
|
||||
base_y + tileProperties.height/4 * tileProperties.scale + tileProperties.scale * 2
|
||||
base_y + tile_properties.scale * 2,
|
||||
base_x + tile_properties.width * tile_properties.scale,
|
||||
base_y + tile_properties.height/4 * tile_properties.scale + tile_properties.scale * 2
|
||||
)
|
||||
table.insert(LoadedObjects.Platforms,plat)
|
||||
|
||||
@@ -599,8 +599,8 @@ function TileCreateObjects()
|
||||
local ladder = Collision:new(
|
||||
base_x,
|
||||
base_y,
|
||||
base_x + tileProperties.scale * 4,
|
||||
base_y + tileProperties.height * tileProperties.scale
|
||||
base_x + tile_properties.scale * 4,
|
||||
base_y + tile_properties.height * tile_properties.scale
|
||||
)
|
||||
table.insert(LoadedObjects.Ladders,ladder)
|
||||
|
||||
@@ -609,17 +609,17 @@ function TileCreateObjects()
|
||||
|
||||
local ladder = Collision:new(
|
||||
base_x,
|
||||
base_y + tileProperties.scale * 2,
|
||||
base_x + tileProperties.scale * 4,
|
||||
base_y + tileProperties.height * tileProperties.scale
|
||||
base_y + tile_properties.scale * 2,
|
||||
base_x + tile_properties.scale * 4,
|
||||
base_y + tile_properties.height * tile_properties.scale
|
||||
)
|
||||
table.insert(LoadedObjects.Ladders,ladder)
|
||||
|
||||
local plat = Collision:new(
|
||||
base_x,
|
||||
base_y + tileProperties.scale * 2,
|
||||
base_x + tileProperties.width * tileProperties.scale,
|
||||
base_y + tileProperties.height/4 * tileProperties.scale + tileProperties.scale * 2
|
||||
base_y + tile_properties.scale * 2,
|
||||
base_x + tile_properties.width * tile_properties.scale,
|
||||
base_y + tile_properties.height/4 * tile_properties.scale + tile_properties.scale * 2
|
||||
)
|
||||
table.insert(LoadedObjects.Platforms,plat)
|
||||
|
||||
@@ -628,9 +628,9 @@ function TileCreateObjects()
|
||||
|
||||
local hazard = Collision:new(
|
||||
base_x,
|
||||
base_y + tileProperties.height * 12/16 * tileProperties.scale,
|
||||
base_x + tileProperties.width * tileProperties.scale,
|
||||
base_y + tileProperties.height * tileProperties.scale
|
||||
base_y + tile_properties.height * 12/16 * tile_properties.scale,
|
||||
base_x + tile_properties.width * tile_properties.scale,
|
||||
base_y + tile_properties.height * tile_properties.scale
|
||||
)
|
||||
table.insert(LoadedObjects.Hazards,hazard)
|
||||
|
||||
@@ -641,7 +641,7 @@ function TileCreateObjects()
|
||||
--CreateCollisionTable()
|
||||
end
|
||||
|
||||
function AnimateTiles()
|
||||
function animateTiles()
|
||||
for _, Properties in pairs(TileData) do
|
||||
if Properties ~= nil then
|
||||
if Properties.animation ~= nil then
|
||||
@@ -661,40 +661,7 @@ function AnimateTiles()
|
||||
end
|
||||
end
|
||||
|
||||
function CreateCollisionTable()
|
||||
-- init table
|
||||
CollisionTable = {}
|
||||
for j=0, 16*LevelGetTileHeight()-1 do
|
||||
CollisionTable[j] = {}
|
||||
for i=0, 16*LevelGetTileWidth()-1 do
|
||||
CollisionTable[j][i] = false
|
||||
end
|
||||
end
|
||||
|
||||
for _, collision in pairs(LoadedObjects.Collisions) do
|
||||
for ci=0, math.floor(collision.width)-1 do
|
||||
for cj=0, math.floor(collision.height)-1 do
|
||||
print(ci..","..cj)
|
||||
CollisionTable[collision.from.y+cj][collision.from.x+ci] = true
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function DrawColisionTable()
|
||||
for j=1, #CollisionTable do
|
||||
for i=1, #CollisionTable[j] do
|
||||
if CollisionTable[j][i] then
|
||||
love.graphics.setColor(0,1,0,1)
|
||||
else
|
||||
love.graphics.setColor(1,0,0,1)
|
||||
end
|
||||
love.graphics.points(i,j)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function DrawTile(tile,x,y,depth)
|
||||
function drawTile(tile,x,y,depth)
|
||||
local Properties = TileData[tile.id]
|
||||
|
||||
if Properties ~= nil then
|
||||
@@ -707,8 +674,8 @@ function DrawTile(tile,x,y,depth)
|
||||
x,
|
||||
y,
|
||||
0,
|
||||
tileProperties.scale,
|
||||
tileProperties.scale
|
||||
tile_properties.scale,
|
||||
tile_properties.scale
|
||||
)
|
||||
end
|
||||
elseif Properties.depth == depth then
|
||||
@@ -720,8 +687,8 @@ function DrawTile(tile,x,y,depth)
|
||||
x,
|
||||
y,
|
||||
0,
|
||||
tileProperties.scale,
|
||||
tileProperties.scale
|
||||
tile_properties.scale,
|
||||
tile_properties.scale
|
||||
)
|
||||
end
|
||||
else
|
||||
@@ -731,8 +698,8 @@ function DrawTile(tile,x,y,depth)
|
||||
x,
|
||||
y,
|
||||
0,
|
||||
tileProperties.scale,
|
||||
tileProperties.scale
|
||||
tile_properties.scale,
|
||||
tile_properties.scale
|
||||
)
|
||||
end
|
||||
end
|
||||
@@ -747,8 +714,8 @@ function DrawTile(tile,x,y,depth)
|
||||
x,
|
||||
y,
|
||||
0,
|
||||
tileProperties.scale,
|
||||
tileProperties.scale
|
||||
tile_properties.scale,
|
||||
tile_properties.scale
|
||||
)
|
||||
else
|
||||
love.graphics.draw(
|
||||
@@ -757,8 +724,8 @@ function DrawTile(tile,x,y,depth)
|
||||
x,
|
||||
y,
|
||||
0,
|
||||
tileProperties.scale,
|
||||
tileProperties.scale
|
||||
tile_properties.scale,
|
||||
tile_properties.scale
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user