This commit is contained in:
PossiblyAxolotl 2022-05-08 22:31:57 -06:00
parent 56644c021a
commit e1164a66bc
20 changed files with 64 additions and 36 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 135 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 154 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 145 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 169 B

View file

@ -50,10 +50,8 @@ function playdate.update()
elseif mode == "game" or mode == "play" then elseif mode == "game" or mode == "play" then
updatePlayer() updatePlayer()
gfx.clear(gfx.kColorBlack)
gfx.sprite.update() gfx.sprite.update()
drawTiles()
local ox, oy = gfx.getDrawOffset() local ox, oy = gfx.getDrawOffset()
gfx.drawText(deaths,-ox + 1,-oy + 1) gfx.drawText(deaths,-ox + 1,-oy + 1)
elseif mode == "newproj" then elseif mode == "newproj" then

View file

@ -5,6 +5,8 @@ tilemap:setImageTable(tileTable)
local tiles = {} local tiles = {}
local x = gfx.sprite.new(tilemap)
function addMapSave(_file) function addMapSave(_file)
playdate.datastore.write({savedLevel=_file,savedDeaths=deaths},"savegame") playdate.datastore.write({savedLevel=_file,savedDeaths=deaths},"savegame")
addMap(_file, false) addMap(_file, false)
@ -19,8 +21,15 @@ function addMap(_file, rs)
end end
end end
local level = json.decodeFile(_file) local level = json.decodeFile(_file)
local width = 0
local height = 0
tilemap:setSize(level.dimensions.x,level.dimensions.y) 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 for i = 1, #level.tiles, 1 do
tilemap:setTileAtPosition(level.tiles[i].x,level.tiles[i].y,level.tiles[i].t) tilemap:setTileAtPosition(level.tiles[i].x,level.tiles[i].y,level.tiles[i].t)
end end
@ -30,8 +39,10 @@ function addMap(_file, rs)
addPlayer(level.rocket.x,level.rocket.y, level.bigrocket.x, level.bigrocket.y) addPlayer(level.rocket.x,level.rocket.y, level.bigrocket.x, level.bigrocket.y)
tiles = gfx.sprite.addWallSprites(tilemap, {0,1}) tiles = gfx.sprite.addWallSprites(tilemap, {0,1})
end
function drawTiles() x:remove()
tilemap:draw(0,0) x = gfx.sprite.new(tilemap)
x:setZIndex(-1)
x:moveTo(x.width/2,x.height/2)
x:add()
end end

View file

@ -2,6 +2,13 @@ local gfx <const> = playdate.graphics
local controlY = 0 local controlY = 0
local controlX = 0 local controlX = 0
local sidebar <const> = gfx.image.new("gfx/sidebar")
local barpos = 0
local barposLerp = 160
local logopos = 0
local logposLerp = -122
local index = 0 local index = 0
local menuitems = {} local menuitems = {}
@ -28,10 +35,10 @@ end
function createMenu(items) function createMenu(items)
killBlades() killBlades()
killPlayer() killPlayer()
if playdate.getReduceFlashing() == false then
controlX = -80 controlX = -80
end
index = 0 index = 0
menuitems = {} menuitems = {}
local _y =220 local _y =220
menu = items[0] menu = items[0]
@ -40,7 +47,7 @@ function createMenu(items)
_y -= 20 _y -= 20
end end
if mode == "game" then if mode == "game" or mode == "play" then
song:stop() song:stop()
song:load("sfx/song1") song:load("sfx/song1")
song:play(0) song:play(0)
@ -51,6 +58,7 @@ end
function updateMenu() function updateMenu()
gfx.clear(gfx.kColorBlack) gfx.clear(gfx.kColorBlack)
sidebar:draw(barposLerp,0)
-- input -- input
local change, aChange = playdate.getCrankChange() local change, aChange = playdate.getCrankChange()
@ -67,9 +75,16 @@ function updateMenu()
controlX = playdate.math.lerp(controlX, 20, 0.3) controlX = playdate.math.lerp(controlX, 20, 0.3)
controlY = playdate.math.lerp(controlY, (20 * math.floor(index)) - 1, 0.5) controlY = playdate.math.lerp(controlY, (20 * math.floor(index)) - 1, 0.5)
barposLerp = playdate.math.lerp(barposLerp, barpos, 0.2)
logposLerp = playdate.math.lerp(logposLerp, logopos, 0.3)
for i = 1, #menuitems, 1 do for i = 1, #menuitems, 1 do
local item = menuitems[i] local item = menuitems[i]
gfx.drawText(item.name,controlX,item.y) if item.name:match("(.+)%..+$") then
gfx.drawText(item.name:match("(.+)%..+$"),controlX,item.y)
else
gfx.drawText(item.name,controlX,item.y)
end
end end
imgCursor:draw(controlX - 17,controlY + (243 - (20 * #menuitems))) imgCursor:draw(controlX - 17,controlY + (243 - (20 * #menuitems)))
@ -79,23 +94,25 @@ function updateMenu()
menuButtonPress("BACK") menuButtonPress("BACK")
end end
imgBytes:draw(0,0) imgBytes:draw(logposLerp,0)
end end
local function customLoad() local function customLoad()
barpos = 160
logopos = -112
local lvls = playdate.file.listFiles("levels") local lvls = playdate.file.listFiles("levels")
local m = {} local m = {}
m[0], m[1] = "customs", "BACK" m[0], m[1] = "customs", "BACK"
if #lvls - ((7*page)) <= 0 then page = 0 end if #lvls - ((10*page)) <= 0 then page = 0 end
if #lvls <= 7 then if #lvls <= 11 then
for i = 1, #lvls, 1 do for i = 1, #lvls, 1 do
m[i+1] = lvls[i]:upper() m[i+1] = lvls[i]:upper()
end end
elseif lvls[1 + (7*page)] then elseif lvls[1 + (10*page)] then
m[2] = "NEXT PAGE" m[2] = "NEXT PAGE"
for i = 1, 7, 1 do for i = 1, 10, 1 do
if lvls[i+(7*page)] then if lvls[i+(10*page)] then
m[i+2] = lvls[i+(7*page)]:upper() m[i+2] = lvls[i+(10*page)]:upper()
end end
end end
end end
@ -104,19 +121,21 @@ local function customLoad()
end end
function editLoad() function editLoad()
logopos = -112
barpos = 160
local lvls = playdate.file.listFiles("levels") local lvls = playdate.file.listFiles("levels")
local m = {} local m = {}
m[0], m[1], m[2] = "edits", "BACK", "CREATE NEW" m[0], m[1], m[2] = "edits", "BACK", "CREATE NEW"
if #lvls - (1 + (6*page)) <= 0 then page = 0 end if #lvls - (1 + (9*page)) <= 0 then page = 0 end
if #lvls <= 7 then if #lvls <= 10 then
for i = 1, #lvls, 1 do for i = 1, #lvls, 1 do
m[i+2] = lvls[i]:upper() m[i+2] = lvls[i]:upper()
end end
elseif lvls[1 + (6*page)] then elseif lvls[1 + (9*page)] then
m[3] = "NEXT PAGE" m[3] = "NEXT PAGE"
for i = 1, 6, 1 do for i = 1, 9, 1 do
if lvls[i+(6*page)] then if lvls[i+(9*page)] then
m[i+3] = lvls[i+(6*page)]:upper() m[i+3] = lvls[i+(9*page)]:upper()
end end
end end
end end
@ -125,6 +144,8 @@ function editLoad()
end end
function menuButtonPress(name) function menuButtonPress(name)
logopos = 0
barpos = 0
if name == "START NEW GAME" and menu == "mainPlay" then if name == "START NEW GAME" and menu == "mainPlay" then
local m = {} local m = {}
m[0], m[1], m[2] = "newgame", "CANCEL", "CONFIRM" m[0], m[1], m[2] = "newgame", "CANCEL", "CONFIRM"

View file

@ -61,7 +61,7 @@ end
function updatePlayer() function updatePlayer()
if active == true then if active == true then
if playdate.buttonIsPressed(playdate.kButtonUp) or playdate.buttonIsPressed(playdate.kButtonDown) or playdate.buttonIsPressed(playdate.kButtonLeft) or playdate.buttonIsPressed(playdate.kButtonRight) or playdate.buttonIsPressed(playdate.kButtonA) or playdate.buttonIsPressed(playdate.kButtonB) then if playdate.buttonIsPressed(playdate.kButtonUp) then
velocity.x = velocity.x + math.sin(math.rad(playdate.getCrankPosition())) /2 velocity.x = velocity.x + math.sin(math.rad(playdate.getCrankPosition())) /2
velocity.y = velocity.y - math.cos(math.rad(playdate.getCrankPosition())) /2 velocity.y = velocity.y - math.cos(math.rad(playdate.getCrankPosition())) /2
end end
@ -81,7 +81,7 @@ function updatePlayer()
end end
elseif exists == true then elseif exists == true then
if playdate.buttonIsPressed(playdate.kButtonUp) or playdate.buttonIsPressed(playdate.kButtonDown) or playdate.buttonIsPressed(playdate.kButtonLeft) or playdate.buttonIsPressed(playdate.kButtonRight) or playdate.buttonIsPressed(playdate.kButtonA) or playdate.buttonIsPressed(playdate.kButtonB) then if playdate.buttonIsPressed(playdate.kButtonUp) then
active = true active = true
end end
local cx, cy = gfx.getDrawOffset() local cx, cy = gfx.getDrawOffset()

View file

@ -80,9 +80,10 @@ function updateSaws()
for spinner = 1, #spinblades, 1 do for spinner = 1, #spinblades, 1 do
for arm = 1, #spinblades[spinner].arms do for arm = 1, #spinblades[spinner].arms do
for blade = 1, #spinblades[spinner].arms[arm] do for blade = 1, #spinblades[spinner].arms[arm] do
spinblades[spinner].time += spinblades[spinner].speed spinblades[spinner].time += spinblades[spinner].speed
local degrees = (360 / #spinblades[spinner].arms * arm + spinblades[spinner].time) local degrees = (360 / #spinblades[spinner].arms * arm + spinblades[spinner].time)
print(degrees)
local position = {x=math.sin(math.rad(degrees)) * 20 * blade,y=math.cos(math.rad(degrees)) * 20 * blade} local position = {x=math.sin(math.rad(degrees)) * 20 * blade,y=math.cos(math.rad(degrees)) * 20 * blade}
spinblades[spinner].arms[arm][blade]:moveTo(spinblades[spinner].mid.x + position.x, spinblades[spinner].mid.y + position.y) spinblades[spinner].arms[arm][blade]:moveTo(spinblades[spinner].mid.x + position.x, spinblades[spinner].mid.y + position.y)

BIN
Source/gfx/sidebar.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

View file

@ -1 +0,0 @@
{"bigrocket":{"x":152.083333,"y":53.846154},"dimensions":{"x":8,"y":13},"rocket":{"x":92.55814,"y":160.930233},"saws":[{"ends":{"x":79.262694,"y":-4.60831},"speed":2,"start":{"x":-7.373272,"y":-7.373272}},{"ends":{"x":66.359461,"y":66.359461},"speed":2,"start":{"x":7.373272,"y":7.373272}}],"tiles":[{"t":2,"x":0,"y":0},{"t":2,"x":0,"y":1},{"t":2,"x":1,"y":1},{"t":2,"x":5,"y":5},{"t":2,"x":8,"y":5},{"t":2,"x":1,"y":13},{"t":2,"x":8,"y":13},{"t":3,"x":2,"y":1},{"t":3,"x":3,"y":1},{"t":3,"x":4,"y":1},{"t":3,"x":5,"y":1},{"t":3,"x":6,"y":1},{"t":3,"x":7,"y":1},{"t":3,"x":8,"y":1},{"t":3,"x":6,"y":5},{"t":3,"x":7,"y":5},{"t":3,"x":2,"y":13},{"t":3,"x":3,"y":13},{"t":3,"x":4,"y":13},{"t":3,"x":5,"y":13},{"t":3,"x":6,"y":13},{"t":3,"x":7,"y":13},{"t":4,"x":1,"y":2},{"t":4,"x":1,"y":3},{"t":4,"x":1,"y":4},{"t":4,"x":1,"y":5},{"t":4,"x":1,"y":6},{"t":4,"x":8,"y":6},{"t":4,"x":1,"y":7},{"t":4,"x":8,"y":7},{"t":4,"x":1,"y":8},{"t":4,"x":8,"y":8},{"t":4,"x":1,"y":9},{"t":4,"x":8,"y":9},{"t":4,"x":1,"y":10},{"t":4,"x":8,"y":10},{"t":4,"x":1,"y":11},{"t":4,"x":8,"y":11},{"t":4,"x":1,"y":12},{"t":4,"x":8,"y":12}]}

View file

@ -0,0 +1 @@
{"bigrocket":{"x":480,"y":97},"dimensions":{"x":35,"y":10},"rocket":{"x":70.55814,"y":100},"rotators":[{"x":376,"y":140.092166,"arms":3,"armlen":3,"speed":-0.2,"middle":false},{"x":200,"y":72,"arms":3,"armlen":3,"speed":0.2,"middle":false}],"saws":[{"ends":{"x":100,"y":135},"speed":2,"start":{"x":100,"y":72}}],"tiles":[{"t":2,"x":2,"y":4},{"t":2,"x":12,"y":4},{"t":2,"x":14,"y":4},{"t":2,"x":28,"y":4},{"t":2,"x":34,"y":4},{"t":2,"x":35,"y":4},{"t":2,"x":12,"y":6},{"t":2,"x":14,"y":6},{"t":2,"x":23,"y":8},{"t":2,"x":25,"y":8},{"t":2,"x":29,"y":9},{"t":2,"x":30,"y":9},{"t":2,"x":31,"y":9},{"t":2,"x":32,"y":9},{"t":2,"x":33,"y":9},{"t":2,"x":2,"y":10},{"t":2,"x":23,"y":10},{"t":2,"x":25,"y":10},{"t":2,"x":29,"y":10},{"t":2,"x":30,"y":10},{"t":2,"x":31,"y":10},{"t":2,"x":32,"y":10},{"t":2,"x":33,"y":10},{"t":2,"x":35,"y":10},{"t":3,"x":3,"y":4},{"t":3,"x":4,"y":4},{"t":3,"x":5,"y":4},{"t":3,"x":6,"y":4},{"t":3,"x":7,"y":4},{"t":3,"x":8,"y":4},{"t":3,"x":9,"y":4},{"t":3,"x":10,"y":4},{"t":3,"x":11,"y":4},{"t":3,"x":13,"y":4},{"t":3,"x":15,"y":4},{"t":3,"x":16,"y":4},{"t":3,"x":17,"y":4},{"t":3,"x":18,"y":4},{"t":3,"x":19,"y":4},{"t":3,"x":20,"y":4},{"t":3,"x":21,"y":4},{"t":3,"x":22,"y":4},{"t":3,"x":23,"y":4},{"t":3,"x":24,"y":4},{"t":3,"x":25,"y":4},{"t":3,"x":26,"y":4},{"t":3,"x":27,"y":4},{"t":3,"x":13,"y":6},{"t":3,"x":24,"y":8},{"t":3,"x":3,"y":10},{"t":3,"x":4,"y":10},{"t":3,"x":5,"y":10},{"t":3,"x":6,"y":10},{"t":3,"x":7,"y":10},{"t":3,"x":8,"y":10},{"t":3,"x":9,"y":10},{"t":3,"x":10,"y":10},{"t":3,"x":11,"y":10},{"t":3,"x":12,"y":10},{"t":3,"x":13,"y":10},{"t":3,"x":14,"y":10},{"t":3,"x":15,"y":10},{"t":3,"x":16,"y":10},{"t":3,"x":17,"y":10},{"t":3,"x":18,"y":10},{"t":3,"x":19,"y":10},{"t":3,"x":20,"y":10},{"t":3,"x":21,"y":10},{"t":3,"x":22,"y":10},{"t":3,"x":24,"y":10},{"t":3,"x":26,"y":10},{"t":3,"x":27,"y":10},{"t":3,"x":28,"y":10},{"t":3,"x":34,"y":10},{"t":4,"x":2,"y":5},{"t":4,"x":12,"y":5},{"t":4,"x":14,"y":5},{"t":4,"x":35,"y":5},{"t":4,"x":2,"y":6},{"t":4,"x":35,"y":6},{"t":4,"x":2,"y":7},{"t":4,"x":35,"y":7},{"t":4,"x":2,"y":8},{"t":4,"x":35,"y":8},{"t":4,"x":2,"y":9},{"t":4,"x":23,"y":9},{"t":4,"x":25,"y":9},{"t":4,"x":35,"y":9}]}

View file

@ -1 +0,0 @@
{"bigrocket":{"x":70.4,"y":125.6},"dimensions":{"x":22,"y":17},"rocket":{"x":70.4,"y":125.6},"tiles":[{"t":2,"x":2,"y":1},{"t":2,"x":14,"y":1},{"t":2,"x":14,"y":5},{"t":2,"x":22,"y":5},{"t":2,"x":8,"y":6},{"t":2,"x":2,"y":12},{"t":2,"x":8,"y":12},{"t":2,"x":11,"y":12},{"t":2,"x":14,"y":12},{"t":2,"x":8,"y":17},{"t":2,"x":22,"y":17},{"t":3,"x":3,"y":1},{"t":3,"x":4,"y":1},{"t":3,"x":5,"y":1},{"t":3,"x":6,"y":1},{"t":3,"x":7,"y":1},{"t":3,"x":8,"y":1},{"t":3,"x":9,"y":1},{"t":3,"x":10,"y":1},{"t":3,"x":11,"y":1},{"t":3,"x":12,"y":1},{"t":3,"x":13,"y":1},{"t":3,"x":15,"y":5},{"t":3,"x":16,"y":5},{"t":3,"x":17,"y":5},{"t":3,"x":18,"y":5},{"t":3,"x":19,"y":5},{"t":3,"x":20,"y":5},{"t":3,"x":21,"y":5},{"t":3,"x":3,"y":12},{"t":3,"x":4,"y":12},{"t":3,"x":5,"y":12},{"t":3,"x":6,"y":12},{"t":3,"x":7,"y":12},{"t":3,"x":9,"y":12},{"t":3,"x":10,"y":12},{"t":3,"x":9,"y":17},{"t":3,"x":10,"y":17},{"t":3,"x":11,"y":17},{"t":3,"x":12,"y":17},{"t":3,"x":13,"y":17},{"t":3,"x":14,"y":17},{"t":3,"x":15,"y":17},{"t":3,"x":16,"y":17},{"t":3,"x":17,"y":17},{"t":3,"x":18,"y":17},{"t":3,"x":19,"y":17},{"t":3,"x":20,"y":17},{"t":3,"x":21,"y":17},{"t":4,"x":2,"y":2},{"t":4,"x":14,"y":2},{"t":4,"x":2,"y":3},{"t":4,"x":14,"y":3},{"t":4,"x":2,"y":4},{"t":4,"x":14,"y":4},{"t":4,"x":2,"y":5},{"t":4,"x":2,"y":6},{"t":4,"x":14,"y":6},{"t":4,"x":22,"y":6},{"t":4,"x":2,"y":7},{"t":4,"x":8,"y":7},{"t":4,"x":14,"y":7},{"t":4,"x":22,"y":7},{"t":4,"x":2,"y":8},{"t":4,"x":8,"y":8},{"t":4,"x":14,"y":8},{"t":4,"x":22,"y":8},{"t":4,"x":2,"y":9},{"t":4,"x":8,"y":9},{"t":4,"x":14,"y":9},{"t":4,"x":22,"y":9},{"t":4,"x":2,"y":10},{"t":4,"x":8,"y":10},{"t":4,"x":14,"y":10},{"t":4,"x":22,"y":10},{"t":4,"x":2,"y":11},{"t":4,"x":8,"y":11},{"t":4,"x":14,"y":11},{"t":4,"x":22,"y":11},{"t":4,"x":22,"y":12},{"t":4,"x":8,"y":13},{"t":4,"x":22,"y":13},{"t":4,"x":8,"y":14},{"t":4,"x":22,"y":14},{"t":4,"x":8,"y":15},{"t":4,"x":22,"y":15},{"t":4,"x":8,"y":16},{"t":4,"x":22,"y":16}]}

View file

@ -1 +0,0 @@
{"bigrocket":{"x":70.4,"y":125.6},"dimensions":{"x":22,"y":17},"rocket":{"x":70.4,"y":125.6},"tiles":[{"t":2,"x":2,"y":1},{"t":2,"x":14,"y":1},{"t":2,"x":14,"y":5},{"t":2,"x":22,"y":5},{"t":2,"x":8,"y":6},{"t":2,"x":2,"y":12},{"t":2,"x":8,"y":12},{"t":2,"x":11,"y":12},{"t":2,"x":14,"y":12},{"t":2,"x":8,"y":17},{"t":2,"x":22,"y":17},{"t":3,"x":3,"y":1},{"t":3,"x":4,"y":1},{"t":3,"x":5,"y":1},{"t":3,"x":6,"y":1},{"t":3,"x":7,"y":1},{"t":3,"x":8,"y":1},{"t":3,"x":9,"y":1},{"t":3,"x":10,"y":1},{"t":3,"x":11,"y":1},{"t":3,"x":12,"y":1},{"t":3,"x":13,"y":1},{"t":3,"x":15,"y":5},{"t":3,"x":16,"y":5},{"t":3,"x":17,"y":5},{"t":3,"x":18,"y":5},{"t":3,"x":19,"y":5},{"t":3,"x":20,"y":5},{"t":3,"x":21,"y":5},{"t":3,"x":3,"y":12},{"t":3,"x":4,"y":12},{"t":3,"x":5,"y":12},{"t":3,"x":6,"y":12},{"t":3,"x":7,"y":12},{"t":3,"x":9,"y":12},{"t":3,"x":10,"y":12},{"t":3,"x":9,"y":17},{"t":3,"x":10,"y":17},{"t":3,"x":11,"y":17},{"t":3,"x":12,"y":17},{"t":3,"x":13,"y":17},{"t":3,"x":14,"y":17},{"t":3,"x":15,"y":17},{"t":3,"x":16,"y":17},{"t":3,"x":17,"y":17},{"t":3,"x":18,"y":17},{"t":3,"x":19,"y":17},{"t":3,"x":20,"y":17},{"t":3,"x":21,"y":17},{"t":4,"x":2,"y":2},{"t":4,"x":14,"y":2},{"t":4,"x":2,"y":3},{"t":4,"x":14,"y":3},{"t":4,"x":2,"y":4},{"t":4,"x":14,"y":4},{"t":4,"x":2,"y":5},{"t":4,"x":2,"y":6},{"t":4,"x":14,"y":6},{"t":4,"x":22,"y":6},{"t":4,"x":2,"y":7},{"t":4,"x":8,"y":7},{"t":4,"x":14,"y":7},{"t":4,"x":22,"y":7},{"t":4,"x":2,"y":8},{"t":4,"x":8,"y":8},{"t":4,"x":14,"y":8},{"t":4,"x":22,"y":8},{"t":4,"x":2,"y":9},{"t":4,"x":8,"y":9},{"t":4,"x":14,"y":9},{"t":4,"x":22,"y":9},{"t":4,"x":2,"y":10},{"t":4,"x":8,"y":10},{"t":4,"x":14,"y":10},{"t":4,"x":22,"y":10},{"t":4,"x":2,"y":11},{"t":4,"x":8,"y":11},{"t":4,"x":14,"y":11},{"t":4,"x":22,"y":11},{"t":4,"x":22,"y":12},{"t":4,"x":8,"y":13},{"t":4,"x":22,"y":13},{"t":4,"x":8,"y":14},{"t":4,"x":22,"y":14},{"t":4,"x":8,"y":15},{"t":4,"x":22,"y":15},{"t":4,"x":8,"y":16},{"t":4,"x":22,"y":16}]}

View file

@ -1 +0,0 @@
{"bigrocket":{"x":70.4,"y":125.6},"dimensions":{"x":22,"y":17},"rocket":{"x":70.4,"y":125.6},"tiles":[{"t":2,"x":2,"y":1},{"t":2,"x":14,"y":1},{"t":2,"x":14,"y":5},{"t":2,"x":22,"y":5},{"t":2,"x":8,"y":6},{"t":2,"x":2,"y":12},{"t":2,"x":8,"y":12},{"t":2,"x":11,"y":12},{"t":2,"x":14,"y":12},{"t":2,"x":8,"y":17},{"t":2,"x":22,"y":17},{"t":3,"x":3,"y":1},{"t":3,"x":4,"y":1},{"t":3,"x":5,"y":1},{"t":3,"x":6,"y":1},{"t":3,"x":7,"y":1},{"t":3,"x":8,"y":1},{"t":3,"x":9,"y":1},{"t":3,"x":10,"y":1},{"t":3,"x":11,"y":1},{"t":3,"x":12,"y":1},{"t":3,"x":13,"y":1},{"t":3,"x":15,"y":5},{"t":3,"x":16,"y":5},{"t":3,"x":17,"y":5},{"t":3,"x":18,"y":5},{"t":3,"x":19,"y":5},{"t":3,"x":20,"y":5},{"t":3,"x":21,"y":5},{"t":3,"x":3,"y":12},{"t":3,"x":4,"y":12},{"t":3,"x":5,"y":12},{"t":3,"x":6,"y":12},{"t":3,"x":7,"y":12},{"t":3,"x":9,"y":12},{"t":3,"x":10,"y":12},{"t":3,"x":9,"y":17},{"t":3,"x":10,"y":17},{"t":3,"x":11,"y":17},{"t":3,"x":12,"y":17},{"t":3,"x":13,"y":17},{"t":3,"x":14,"y":17},{"t":3,"x":15,"y":17},{"t":3,"x":16,"y":17},{"t":3,"x":17,"y":17},{"t":3,"x":18,"y":17},{"t":3,"x":19,"y":17},{"t":3,"x":20,"y":17},{"t":3,"x":21,"y":17},{"t":4,"x":2,"y":2},{"t":4,"x":14,"y":2},{"t":4,"x":2,"y":3},{"t":4,"x":14,"y":3},{"t":4,"x":2,"y":4},{"t":4,"x":14,"y":4},{"t":4,"x":2,"y":5},{"t":4,"x":2,"y":6},{"t":4,"x":14,"y":6},{"t":4,"x":22,"y":6},{"t":4,"x":2,"y":7},{"t":4,"x":8,"y":7},{"t":4,"x":14,"y":7},{"t":4,"x":22,"y":7},{"t":4,"x":2,"y":8},{"t":4,"x":8,"y":8},{"t":4,"x":14,"y":8},{"t":4,"x":22,"y":8},{"t":4,"x":2,"y":9},{"t":4,"x":8,"y":9},{"t":4,"x":14,"y":9},{"t":4,"x":22,"y":9},{"t":4,"x":2,"y":10},{"t":4,"x":8,"y":10},{"t":4,"x":14,"y":10},{"t":4,"x":22,"y":10},{"t":4,"x":2,"y":11},{"t":4,"x":8,"y":11},{"t":4,"x":14,"y":11},{"t":4,"x":22,"y":11},{"t":4,"x":22,"y":12},{"t":4,"x":8,"y":13},{"t":4,"x":22,"y":13},{"t":4,"x":8,"y":14},{"t":4,"x":22,"y":14},{"t":4,"x":8,"y":15},{"t":4,"x":22,"y":15},{"t":4,"x":8,"y":16},{"t":4,"x":22,"y":16}]}