From 07b48b6e0d5f6fe5a17cf7e4e1fbc6d60f636d1f Mon Sep 17 00:00:00 2001 From: PossiblyAxolotl Date: Sat, 23 Apr 2022 23:03:32 -0600 Subject: [PATCH] blades spawn and despawn --- Source/Main.lua | 1 + Source/Map.lua | 1 + Source/Menu.lua | 1 + Source/Saws.lua | 37 +++++++++++++++++++++++++++++++++++++ Source/gfx/sawblade.png | Bin 0 -> 148 bytes Source/gfx/target.png | Bin 0 -> 115 bytes Source/levels/saw.json | 1 + 7 files changed, 41 insertions(+) create mode 100644 Source/Saws.lua create mode 100644 Source/gfx/sawblade.png create mode 100644 Source/gfx/target.png create mode 100644 Source/levels/saw.json diff --git a/Source/Main.lua b/Source/Main.lua index 4706e32..e44e7f7 100644 --- a/Source/Main.lua +++ b/Source/Main.lua @@ -4,6 +4,7 @@ import "CoreLibs/ui" import "Player" import "Map" import "Menu" +import "Saws" mode = "menu" map = "levels/level1.json" diff --git a/Source/Map.lua b/Source/Map.lua index d9d812c..a4b0e20 100644 --- a/Source/Map.lua +++ b/Source/Map.lua @@ -17,6 +17,7 @@ function addMap(_file) tilemap:setTileAtPosition(level.tiles[i].x,level.tiles[i].y,level.tiles[i].t) end + if level.saws then loadBlades(level.saws) end 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 0422216..1955968 100644 --- a/Source/Menu.lua +++ b/Source/Menu.lua @@ -25,6 +25,7 @@ function mainMenuCreation() end function createMenu(items) + killBlades() killPlayer() mode = "menu" controlX = -80 diff --git a/Source/Saws.lua b/Source/Saws.lua new file mode 100644 index 0000000..05b6ee4 --- /dev/null +++ b/Source/Saws.lua @@ -0,0 +1,37 @@ +local gfx = playdate.graphics + +local imgSaw = gfx.image.new("gfx/sawblade") +local imgTarget = gfx.image.new("gfx/target") +assert(imgSaw) +assert(imgTarget) + +local blades = {} + +function loadBlades(_blades) + for i = 1, #_blades,1 do + local b = _blades[i] + b.start = playdate.geometry.point.new(b.start.x,b.start.y) + b.ends = playdate.geometry.point.new(b.ends.x,b.ends.y) + b.saw = gfx.sprite.new(imgSaw) + b.saw:moveTo(b.start) + b.saw:setCollideRect(0,0,16,16) + b.saw:add() + + b.t1 = gfx.sprite.new(imgTarget) + b.t1:moveTo(b.start) + b.t2 = gfx.sprite.new(imgTarget) + b.t2:moveTo(b.ends) + b.t1:add() + b.t2:add() + blades[i] = b + end +end + +function killBlades() + for i = 1, #blades, 1 do + blades[i].t1:remove() + blades[i].t2:remove() + blades[i].saw:remove() + end + blades = {} +end \ No newline at end of file diff --git a/Source/gfx/sawblade.png b/Source/gfx/sawblade.png new file mode 100644 index 0000000000000000000000000000000000000000..b48e42469fab797e7cd59235006855694e2eec77 GIT binary patch literal 148 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`(Vi}jAr`$yCp&U6C~&ZpFaBSD zQ;$=V)0O+|$rlf{XrAQ})~~2wV=%F~G~KHFRGQ>u$q-pBCo!Ssx3^CUm`%ISr50~g vU?N#y+!^j+yh6=z@qJdYa`)(;IR*?L9!V-~-Q~UxXbpp>tDnm{r-UW|;Y}`q literal 0 HcmV?d00001 diff --git a/Source/gfx/target.png b/Source/gfx/target.png new file mode 100644 index 0000000000000000000000000000000000000000..fd25c8c3c76cf16e9e4bde244905ef9cd2df50a8 GIT binary patch literal 115 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6tUO&DLo_BPrz9jK{5anrYhYwx zVDNB)vqsZvH}f_@Cqa`&)^)Q5ec80!F0?#c*zjpW%8_M~k&_m1GQ2P5ke&4M{U@L) N44$rjF6*2UngI7pB-;Q0 literal 0 HcmV?d00001 diff --git a/Source/levels/saw.json b/Source/levels/saw.json new file mode 100644 index 0000000..54fc7a8 --- /dev/null +++ b/Source/levels/saw.json @@ -0,0 +1 @@ +{"bigrocket":{"x":73.333333,"y":144.79638},"dimensions":{"x":22,"y":17},"rocket":{"x":276.27907,"y":144.651163},"saws":[{"ends":{"x":200.000014,"y":81.105913},"speed":1,"start":{"x":141.013825,"y":168.202765}},{"ends":{"x":313.824857,"y":185.714272},"speed":1,"start":{"x":235.023041,"y":184.331797}}],"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