Rocket-Bytes/Source/Map.lua
2022-05-10 18:23:22 -06:00

49 lines
1.4 KiB
Lua

local gfx <const> = playdate.graphics
local tileTable <const> = gfx.imagetable.new("gfx/tiles")
local tilemap <const> = gfx.tilemap.new()
tilemap:setImageTable(tileTable)
local tiles = {}
local x = gfx.sprite.new(tilemap)
function addMapSave(_file)
playdate.datastore.delete("savegame.json")
playdate.datastore.write({savedLevel=_file,savedDeaths=deaths},"savegame")
addMap(_file, false)
mode = "game"
end
function addMap(_file, rs)
if rs then deaths = 0 end
if #tiles > 0 then
for i = 1, #tiles, 1 do
tiles[i]:remove()
end
end
local level = json.decodeFile(_file)
local width = 0
local height = 0
for i = 1, #level.tiles, 1 do
if level.tiles[i].x > width then width = level.tiles[i].x end
if level.tiles[i].y > height then height = level.tiles[i].y end
end
tilemap:setSize(width,height)
for i = 1, #level.tiles, 1 do
tilemap:setTileAtPosition(level.tiles[i].x,level.tiles[i].y,level.tiles[i].t)
end
if level.saws then loadBlades(level.saws) end
if level.rotators then loadSpins(level.rotators) end
addPlayer(level.rocket.x,level.rocket.y, level.bigrocket.x, level.bigrocket.y)
tiles = gfx.sprite.addWallSprites(tilemap, {0,1})
x:remove()
x = gfx.sprite.new(tilemap)
x:setZIndex(-1)
x:moveTo(x.width/2,x.height/2)
x:add()
end