diff --git a/Source/Main.lua b/Source/Main.lua index 7efcea1..cf2e923 100644 --- a/Source/Main.lua +++ b/Source/Main.lua @@ -5,6 +5,7 @@ import "Map" import "Menu" mode = "menu" +map = "levels/level1.json" local gfx = playdate.graphics local disp = playdate.display @@ -18,20 +19,16 @@ song1:play(0, 1) gfx.setColor(gfx.kColorWhite) -- {"START NEW GAME","CONTINUE","USER LEVELS", "EXIT"} -local mainmenu = {} -if playdate.datastore.read("savegame") then - mainmenu[4],mainmenu[3],mainmenu[2],mainmenu[1], mainmenu[0] = "START NEW GAME", "CONTINE", "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 + createMenu(mainmenu) local menu = playdate.getSystemMenu() local menuItem, error = menu:addMenuItem("Main Menu", function() + mainMenuCreation() createMenu(mainmenu) end) -addMap("levels/level.json") +--addMap("levels/level.json") function playdate.update() if mode == "menu" then diff --git a/Source/Map.lua b/Source/Map.lua index 5080254..8ba217f 100644 --- a/Source/Map.lua +++ b/Source/Map.lua @@ -3,6 +3,11 @@ local tileTable = gfx.imagetable.new("gfx/tiles") local tilemap = gfx.tilemap.new() tilemap:setImageTable(tileTable) +function addMapSave(_file) + playdate.datastore.write({level=_file},"savegame") + addMap(_file) +end + function addMap(_file) local level = json.decodeFile(_file) tilemap:setSize(level.dimensions.x,level.dimensions.y) diff --git a/Source/Menu.lua b/Source/Menu.lua index f89ef08..350cc3f 100644 --- a/Source/Menu.lua +++ b/Source/Menu.lua @@ -8,7 +8,22 @@ local menuitems = {} local menu = null local imgCursor = gfx.image.new("gfx/cursor") +local imgBytes = gfx.image.new("gfx/bytes") assert(imgCursor) +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 +end + +mainMenuCreation() function createMenu(items) killPlayer() @@ -40,10 +55,37 @@ function updateMenu() controlX = playdate.math.lerp(controlX, 20, 0.3) controlY = playdate.math.lerp(controlY, (20 * index) - 1, 0.5) - print(index) - imgCursor:draw(3,controlY + (243 - (20 * #menuitems))) for i = 1, #menuitems, 1 do local item = menuitems[i] gfx.drawText(item.name,controlX,item.y) end -end \ No newline at end of file + imgCursor:draw(controlX - 17,controlY + (243 - (20 * #menuitems))) + + if playdate.buttonJustPressed(playdate.kButtonA) then + menuButtonPress(menuitems[#menuitems - index].name) + end + + imgBytes:draw(0,0) +end + +function menuButtonPress(name) + if name == "START NEW GAME" and menu == "mainPlay" then + local m = {} + m[0], m[1], m[2] = "newgame", "CANCEL", "CONFIRM" + createMenu(m) + + elseif name == "START NEW GAME" or name == "CONFIRM" then + addMapSave("levels/level1.json") + + elseif name == "CONTINUE" then + addMap(map) + + elseif name == "ABOUT THE CREATOR" then + local m = {} + m[0],m[1] = "about", "BACK" + createMenu(m) + + elseif name == "BACK" or name == "CANCEL" then + createMenu(mainmenu) + end +end diff --git a/Source/gfx/bigrocket.png b/Source/gfx/bigrocket.png new file mode 100644 index 0000000..e6e09f8 Binary files /dev/null and b/Source/gfx/bigrocket.png differ diff --git a/Source/gfx/bytes.png b/Source/gfx/bytes.png new file mode 100644 index 0000000..848ef7d Binary files /dev/null and b/Source/gfx/bytes.png differ diff --git a/Source/gfx/play.png b/Source/gfx/play.png deleted file mode 100644 index ed61154..0000000 Binary files a/Source/gfx/play.png and /dev/null differ diff --git a/Source/levels/level.json b/Source/levels/level.json deleted file mode 100644 index dbfdc41..0000000 --- a/Source/levels/level.json +++ /dev/null @@ -1 +0,0 @@ -{"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}]} \ No newline at end of file diff --git a/Source/levels/level1.json b/Source/levels/level1.json index 23e8dd5..6eaf0a7 100644 --- a/Source/levels/level1.json +++ b/Source/levels/level1.json @@ -1 +1 @@ -{"tiles":[{"x":1,"y":1,"t":2},{"x":2,"y":1,"t":3},{"x":3,"y":1,"t":3},{"x":4,"y":1,"t":2}],"dimensions":{"x":4,"y":2}} \ No newline at end of file +{"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}]} \ No newline at end of file