diff --git a/Source/Map.lua b/Source/Map.lua index 8ba217f..d9d812c 100644 --- a/Source/Map.lua +++ b/Source/Map.lua @@ -3,8 +3,10 @@ local tileTable = gfx.imagetable.new("gfx/tiles") local tilemap = gfx.tilemap.new() tilemap:setImageTable(tileTable) + + function addMapSave(_file) - playdate.datastore.write({level=_file},"savegame") + playdate.datastore.write({savedLevel=_file},"savegame") addMap(_file) end @@ -15,7 +17,7 @@ function addMap(_file) tilemap:setTileAtPosition(level.tiles[i].x,level.tiles[i].y,level.tiles[i].t) end - addPlayer(level.rocket.x,level.rocket.y) + addPlayer(level.rocket.x,level.rocket.y, level.bigrocket.x, level.bigrocket.y) gfx.sprite.addWallSprites(tilemap, {0,1}) diff --git a/Source/Menu.lua b/Source/Menu.lua index 350cc3f..f0867d2 100644 --- a/Source/Menu.lua +++ b/Source/Menu.lua @@ -15,12 +15,12 @@ assert(imgBytes) mainmenu = {} function mainMenuCreation() mainmenu = {} -if playdate.datastore.read("savegame") then - map = playdate.datastore.read("savegame").level - mainmenu[4],mainmenu[3],mainmenu[2],mainmenu[1], mainmenu[0] = "CONTINUE", "START NEW GAME", "USER LEVELS", "ABOUT THE CREATOR", "mainPlay" -else mainmenu[3],mainmenu[2],mainmenu[1], mainmenu[0] = "START NEW GAME", "USER LEVELS", "ABOUT THE CREATOR", "mainNoPlay" -end + + if playdate.datastore.read("savegame") then + map = playdate.datastore.read("savegame").savedLevel + mainmenu[4], mainmenu[0] = "CONTINUE", "mainPlay" + end end mainMenuCreation() @@ -75,7 +75,7 @@ function menuButtonPress(name) createMenu(m) elseif name == "START NEW GAME" or name == "CONFIRM" then - addMapSave("levels/level1.json") + addMapSave("levels/level.json") elseif name == "CONTINUE" then addMap(map) diff --git a/Source/Player.lua b/Source/Player.lua index d630eed..94178a8 100644 --- a/Source/Player.lua +++ b/Source/Player.lua @@ -3,6 +3,7 @@ import "CoreLibs/math" local velocity = {x=0,y=0} local lerpmnt = 0.5 local grav = 0.2 +scale = 1 local exists = false local active = false @@ -13,11 +14,20 @@ local sprRocket = gfx.sprite.new(imgRocket) sprRocket:setCollideRect(7, 7, 14, 14) local startpos = {x=0,y=0} -function addPlayer(_x,_y) +local imgBigRocket = gfx.image.new("gfx/bigrocket") +assert(imgBigRocket) +local sprBigRocket = gfx.sprite.new(imgBigRocket) +sprBigRocket:setCollideRect(8,8,48,48) +sprBigRocket:setGroups({2}) + +function addPlayer(_x,_y,__x,__y) exists = true + scale = 1 active = false velocity = {x=0,y=0} startpos = {x= _x,y=_y} + sprBigRocket:moveTo(__x,__y) + sprBigRocket:add() sprRocket:moveTo(_x,_y) sprRocket:add() end @@ -29,6 +39,11 @@ function killPlayer() gfx.setDrawOffset(0,0) end +local function playerWin() + active = false + exists = false +end + local function die() active = false velocity = {x=0,y=0} @@ -64,5 +79,15 @@ function updatePlayer() gfx.setDrawOffset(playdate.math.lerp(cx,(-sprRocket.x + 200), lerpmnt), playdate.math.lerp(cy,(-sprRocket.y + 120), lerpmnt)) end + updateExit() + + sprRocket:setScale(scale,scale) + sprRocket:setRotation(playdate.getCrankPosition()) +end + +function updateExit() + if sprBigRocket:alphaCollision(sprRocket) then + playerWin() + end end \ No newline at end of file diff --git a/Source/gfx/bigrocket.png b/Source/gfx/bigrocket.png index e6e09f8..60b4cfd 100644 Binary files a/Source/gfx/bigrocket.png and b/Source/gfx/bigrocket.png differ diff --git a/Source/levels/bits1.json b/Source/levels/bits1.json deleted file mode 100644 index 67079ed..0000000 --- a/Source/levels/bits1.json +++ /dev/null @@ -1 +0,0 @@ -{"tiles":[{"t":2,"x":-13,"y":-40},{"t":2,"x":-6,"y":-40},{"t":2,"x":-13,"y":-39},{"t":2,"x":-6,"y":-39},{"t":2,"x":-13,"y":-38},{"t":2,"x":-6,"y":-38},{"t":2,"x":-13,"y":-37},{"t":2,"x":-6,"y":-37},{"t":2,"x":-13,"y":-36},{"t":2,"x":-6,"y":-36},{"t":2,"x":-13,"y":-35},{"t":2,"x":-6,"y":-35},{"t":2,"x":-13,"y":-34},{"t":2,"x":-6,"y":-34},{"t":2,"x":-13,"y":-33},{"t":2,"x":-6,"y":-33},{"t":2,"x":-13,"y":-32},{"t":2,"x":-6,"y":-32},{"t":2,"x":-13,"y":-31},{"t":2,"x":-6,"y":-31},{"t":2,"x":-13,"y":-30},{"t":2,"x":-6,"y":-30},{"t":2,"x":-13,"y":-29},{"t":2,"x":-6,"y":-29},{"t":2,"x":-13,"y":-28},{"t":2,"x":-6,"y":-28},{"t":2,"x":-13,"y":-27},{"t":2,"x":-6,"y":-27},{"t":2,"x":-13,"y":-26},{"t":2,"x":-6,"y":-26},{"t":2,"x":-13,"y":-25},{"t":2,"x":-6,"y":-25},{"t":2,"x":-13,"y":-24},{"t":2,"x":-6,"y":-24},{"t":2,"x":-13,"y":-23},{"t":2,"x":-6,"y":-23},{"t":2,"x":-13,"y":-22},{"t":2,"x":-6,"y":-22},{"t":2,"x":-5,"y":-22},{"t":2,"x":-4,"y":-22},{"t":2,"x":-3,"y":-22},{"t":2,"x":-2,"y":-22},{"t":2,"x":-1,"y":-22},{"t":2,"x":0,"y":-22},{"t":2,"x":1,"y":-22},{"t":2,"x":2,"y":-22},{"t":2,"x":3,"y":-22},{"t":2,"x":4,"y":-22},{"t":2,"x":5,"y":-22},{"t":2,"x":6,"y":-22},{"t":2,"x":7,"y":-22},{"t":2,"x":8,"y":-22},{"t":2,"x":9,"y":-22},{"t":2,"x":10,"y":-22},{"t":2,"x":11,"y":-22},{"t":2,"x":12,"y":-22},{"t":2,"x":13,"y":-22},{"t":2,"x":14,"y":-22},{"t":2,"x":15,"y":-22},{"t":2,"x":16,"y":-22},{"t":2,"x":17,"y":-22},{"t":2,"x":18,"y":-22},{"t":2,"x":19,"y":-22},{"t":2,"x":20,"y":-22},{"t":2,"x":21,"y":-22},{"t":2,"x":22,"y":-22},{"t":2,"x":23,"y":-22},{"t":2,"x":24,"y":-22},{"t":2,"x":25,"y":-22},{"t":2,"x":26,"y":-22},{"t":2,"x":27,"y":-22},{"t":2,"x":28,"y":-22},{"t":2,"x":29,"y":-22},{"t":2,"x":30,"y":-22},{"t":2,"x":31,"y":-22},{"t":2,"x":32,"y":-22},{"t":2,"x":33,"y":-22},{"t":2,"x":34,"y":-22},{"t":2,"x":-13,"y":-21},{"t":2,"x":34,"y":-21},{"t":2,"x":-13,"y":-20},{"t":2,"x":34,"y":-20},{"t":2,"x":42,"y":-20},{"t":2,"x":43,"y":-20},{"t":2,"x":44,"y":-20},{"t":2,"x":45,"y":-20},{"t":2,"x":46,"y":-20},{"t":2,"x":47,"y":-20},{"t":2,"x":48,"y":-20},{"t":2,"x":-13,"y":-19},{"t":2,"x":34,"y":-19},{"t":2,"x":42,"y":-19},{"t":2,"x":48,"y":-19},{"t":2,"x":-13,"y":-18},{"t":2,"x":34,"y":-18},{"t":2,"x":42,"y":-18},{"t":2,"x":48,"y":-18},{"t":2,"x":49,"y":-18},{"t":2,"x":50,"y":-18},{"t":2,"x":-13,"y":-17},{"t":2,"x":-12,"y":-17},{"t":2,"x":-11,"y":-17},{"t":2,"x":-10,"y":-17},{"t":2,"x":-9,"y":-17},{"t":2,"x":-8,"y":-17},{"t":2,"x":-7,"y":-17},{"t":2,"x":-6,"y":-17},{"t":2,"x":34,"y":-17},{"t":2,"x":42,"y":-17},{"t":2,"x":50,"y":-17},{"t":2,"x":-6,"y":-16},{"t":2,"x":34,"y":-16},{"t":2,"x":42,"y":-16},{"t":2,"x":50,"y":-16},{"t":2,"x":-6,"y":-15},{"t":2,"x":34,"y":-15},{"t":2,"x":35,"y":-15},{"t":2,"x":36,"y":-15},{"t":2,"x":37,"y":-15},{"t":2,"x":38,"y":-15},{"t":2,"x":39,"y":-15},{"t":2,"x":40,"y":-15},{"t":2,"x":41,"y":-15},{"t":2,"x":42,"y":-15},{"t":2,"x":43,"y":-15},{"t":2,"x":44,"y":-15},{"t":2,"x":45,"y":-15},{"t":2,"x":46,"y":-15},{"t":2,"x":47,"y":-15},{"t":2,"x":48,"y":-15},{"t":2,"x":49,"y":-15},{"t":2,"x":50,"y":-15},{"t":2,"x":51,"y":-15},{"t":2,"x":52,"y":-15},{"t":2,"x":53,"y":-15},{"t":2,"x":54,"y":-15},{"t":2,"x":55,"y":-15},{"t":2,"x":56,"y":-15},{"t":2,"x":-6,"y":-14},{"t":2,"x":42,"y":-14},{"t":2,"x":50,"y":-14},{"t":2,"x":-6,"y":-13},{"t":2,"x":42,"y":-13},{"t":2,"x":50,"y":-13},{"t":2,"x":-6,"y":-12},{"t":2,"x":-5,"y":-12},{"t":2,"x":-4,"y":-12},{"t":2,"x":-3,"y":-12},{"t":2,"x":-2,"y":-12},{"t":2,"x":-1,"y":-12},{"t":2,"x":0,"y":-12},{"t":2,"x":1,"y":-12},{"t":2,"x":2,"y":-12},{"t":2,"x":3,"y":-12},{"t":2,"x":4,"y":-12},{"t":2,"x":5,"y":-12},{"t":2,"x":6,"y":-12},{"t":2,"x":7,"y":-12},{"t":2,"x":8,"y":-12},{"t":2,"x":9,"y":-12},{"t":2,"x":10,"y":-12},{"t":2,"x":11,"y":-12},{"t":2,"x":12,"y":-12},{"t":2,"x":13,"y":-12},{"t":2,"x":14,"y":-12},{"t":2,"x":42,"y":-12},{"t":2,"x":50,"y":-12},{"t":2,"x":-6,"y":-11},{"t":2,"x":14,"y":-11},{"t":2,"x":42,"y":-11},{"t":2,"x":47,"y":-11},{"t":2,"x":48,"y":-11},{"t":2,"x":49,"y":-11},{"t":2,"x":50,"y":-11},{"t":2,"x":-6,"y":-10},{"t":2,"x":14,"y":-10},{"t":2,"x":34,"y":-10},{"t":2,"x":35,"y":-10},{"t":2,"x":36,"y":-10},{"t":2,"x":37,"y":-10},{"t":2,"x":42,"y":-10},{"t":2,"x":47,"y":-10},{"t":2,"x":-6,"y":-9},{"t":2,"x":14,"y":-9},{"t":2,"x":34,"y":-9},{"t":2,"x":37,"y":-9},{"t":2,"x":42,"y":-9},{"t":2,"x":47,"y":-9},{"t":2,"x":-6,"y":-8},{"t":2,"x":14,"y":-8},{"t":2,"x":31,"y":-8},{"t":2,"x":32,"y":-8},{"t":2,"x":33,"y":-8},{"t":2,"x":34,"y":-8},{"t":2,"x":37,"y":-8},{"t":2,"x":42,"y":-8},{"t":2,"x":47,"y":-8},{"t":2,"x":-6,"y":-7},{"t":2,"x":14,"y":-7},{"t":2,"x":31,"y":-7},{"t":2,"x":37,"y":-7},{"t":2,"x":42,"y":-7},{"t":2,"x":43,"y":-7},{"t":2,"x":44,"y":-7},{"t":2,"x":45,"y":-7},{"t":2,"x":46,"y":-7},{"t":2,"x":47,"y":-7},{"t":2,"x":-6,"y":-6},{"t":2,"x":14,"y":-6},{"t":2,"x":15,"y":-6},{"t":2,"x":16,"y":-6},{"t":2,"x":17,"y":-6},{"t":2,"x":18,"y":-6},{"t":2,"x":19,"y":-6},{"t":2,"x":20,"y":-6},{"t":2,"x":21,"y":-6},{"t":2,"x":22,"y":-6},{"t":2,"x":23,"y":-6},{"t":2,"x":24,"y":-6},{"t":2,"x":25,"y":-6},{"t":2,"x":26,"y":-6},{"t":2,"x":27,"y":-6},{"t":2,"x":28,"y":-6},{"t":2,"x":29,"y":-6},{"t":2,"x":30,"y":-6},{"t":2,"x":31,"y":-6},{"t":2,"x":32,"y":-6},{"t":2,"x":33,"y":-6},{"t":2,"x":34,"y":-6},{"t":2,"x":35,"y":-6},{"t":2,"x":36,"y":-6},{"t":2,"x":37,"y":-6},{"t":2,"x":42,"y":-6},{"t":2,"x":47,"y":-6},{"t":2,"x":-6,"y":-5},{"t":2,"x":14,"y":-5},{"t":2,"x":27,"y":-5},{"t":2,"x":42,"y":-5},{"t":2,"x":47,"y":-5},{"t":2,"x":-6,"y":-4},{"t":2,"x":14,"y":-4},{"t":2,"x":27,"y":-4},{"t":2,"x":42,"y":-4},{"t":2,"x":47,"y":-4},{"t":2,"x":48,"y":-4},{"t":2,"x":49,"y":-4},{"t":2,"x":50,"y":-4},{"t":2,"x":51,"y":-4},{"t":2,"x":52,"y":-4},{"t":2,"x":-6,"y":-3},{"t":2,"x":2,"y":-3},{"t":2,"x":3,"y":-3},{"t":2,"x":4,"y":-3},{"t":2,"x":5,"y":-3},{"t":2,"x":6,"y":-3},{"t":2,"x":7,"y":-3},{"t":2,"x":14,"y":-3},{"t":2,"x":27,"y":-3},{"t":2,"x":42,"y":-3},{"t":2,"x":47,"y":-3},{"t":2,"x":-6,"y":-2},{"t":2,"x":2,"y":-2},{"t":2,"x":7,"y":-2},{"t":2,"x":14,"y":-2},{"t":2,"x":27,"y":-2},{"t":2,"x":31,"y":-2},{"t":2,"x":42,"y":-2},{"t":2,"x":47,"y":-2},{"t":2,"x":-6,"y":-1},{"t":2,"x":2,"y":-1},{"t":2,"x":7,"y":-1},{"t":2,"x":14,"y":-1},{"t":2,"x":27,"y":-1},{"t":2,"x":31,"y":-1},{"t":2,"x":42,"y":-1},{"t":2,"x":47,"y":-1},{"t":2,"x":-6,"y":0},{"t":2,"x":2,"y":0},{"t":2,"x":7,"y":0},{"t":2,"x":20,"y":0},{"t":2,"x":27,"y":0},{"t":2,"x":31,"y":0},{"t":2,"x":32,"y":0},{"t":2,"x":33,"y":0},{"t":2,"x":34,"y":0},{"t":2,"x":35,"y":0},{"t":2,"x":36,"y":0},{"t":2,"x":37,"y":0},{"t":2,"x":38,"y":0},{"t":2,"x":39,"y":0},{"t":2,"x":40,"y":0},{"t":2,"x":41,"y":0},{"t":2,"x":42,"y":0},{"t":2,"x":43,"y":0},{"t":2,"x":44,"y":0},{"t":2,"x":45,"y":0},{"t":2,"x":46,"y":0},{"t":2,"x":47,"y":0},{"t":2,"x":-6,"y":1},{"t":2,"x":2,"y":1},{"t":2,"x":7,"y":1},{"t":2,"x":20,"y":1},{"t":2,"x":27,"y":1},{"t":2,"x":31,"y":1},{"t":2,"x":37,"y":1},{"t":2,"x":-6,"y":2},{"t":2,"x":2,"y":2},{"t":2,"x":7,"y":2},{"t":2,"x":20,"y":2},{"t":2,"x":31,"y":2},{"t":2,"x":37,"y":2},{"t":2,"x":-6,"y":3},{"t":2,"x":-5,"y":3},{"t":2,"x":-4,"y":3},{"t":2,"x":-3,"y":3},{"t":2,"x":-2,"y":3},{"t":2,"x":-1,"y":3},{"t":2,"x":0,"y":3},{"t":2,"x":1,"y":3},{"t":2,"x":2,"y":3},{"t":2,"x":3,"y":3},{"t":2,"x":4,"y":3},{"t":2,"x":5,"y":3},{"t":2,"x":6,"y":3},{"t":2,"x":7,"y":3},{"t":2,"x":8,"y":3},{"t":2,"x":9,"y":3},{"t":2,"x":10,"y":3},{"t":2,"x":20,"y":3},{"t":2,"x":31,"y":3},{"t":2,"x":37,"y":3},{"t":2,"x":10,"y":4},{"t":2,"x":20,"y":4},{"t":2,"x":31,"y":4},{"t":2,"x":34,"y":4},{"t":2,"x":35,"y":4},{"t":2,"x":36,"y":4},{"t":2,"x":37,"y":4},{"t":2,"x":10,"y":5},{"t":2,"x":20,"y":5},{"t":2,"x":31,"y":5},{"t":2,"x":34,"y":5},{"t":2,"x":10,"y":6},{"t":2,"x":11,"y":6},{"t":2,"x":12,"y":6},{"t":2,"x":13,"y":6},{"t":2,"x":14,"y":6},{"t":2,"x":15,"y":6},{"t":2,"x":16,"y":6},{"t":2,"x":17,"y":6},{"t":2,"x":18,"y":6},{"t":2,"x":19,"y":6},{"t":2,"x":20,"y":6},{"t":2,"x":21,"y":6},{"t":2,"x":22,"y":6},{"t":2,"x":23,"y":6},{"t":2,"x":24,"y":6},{"t":2,"x":25,"y":6},{"t":2,"x":26,"y":6},{"t":2,"x":27,"y":6},{"t":2,"x":28,"y":6},{"t":2,"x":29,"y":6},{"t":2,"x":30,"y":6},{"t":2,"x":31,"y":6},{"t":2,"x":32,"y":6},{"t":2,"x":33,"y":6},{"t":2,"x":34,"y":6},{"t":2,"x":10,"y":7},{"t":2,"x":20,"y":7},{"t":2,"x":10,"y":8},{"t":2,"x":20,"y":8},{"t":2,"x":10,"y":9},{"t":2,"x":20,"y":9},{"t":2,"x":10,"y":10},{"t":2,"x":20,"y":10},{"t":2,"x":10,"y":11},{"t":2,"x":11,"y":11},{"t":2,"x":12,"y":11},{"t":2,"x":13,"y":11},{"t":2,"x":14,"y":11},{"t":2,"x":15,"y":11},{"t":2,"x":20,"y":11},{"t":2,"x":15,"y":12},{"t":2,"x":16,"y":12},{"t":2,"x":17,"y":12},{"t":2,"x":18,"y":12},{"t":2,"x":19,"y":12},{"t":2,"x":20,"y":12}]} \ No newline at end of file diff --git a/Source/levels/level.json b/Source/levels/level.json new file mode 100644 index 0000000..adfaa7c --- /dev/null +++ b/Source/levels/level.json @@ -0,0 +1 @@ +{"bigrocket":{"x":73.333333,"y":144.79638},"dimensions":{"x":22,"y":17},"rocket":{"x":276.27907,"y":144.651163},"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}]} \ No newline at end of file diff --git a/Source/levels/level1.json b/Source/levels/level2.json similarity index 100% rename from Source/levels/level1.json rename to Source/levels/level2.json