This commit is contained in:
PossiblyAxolotl 2022-05-14 10:34:53 -06:00
parent 4aaa0dbc8f
commit 29c4d0e106
7 changed files with 29 additions and 7 deletions

View file

@ -23,7 +23,7 @@ gfx.setBackgroundColor(gfx.kColorBlack)
song = playdate.sound.fileplayer.new("sfx/song1") song = playdate.sound.fileplayer.new("sfx/song1")
song:setVolume(0) song:setVolume(0)
song:setVolume(0.5,0.5, 2) song:setVolume(0.5,0.5, 1)
song:play(0) song:play(0)
local imgCrank = gfx.image.new("gfx/crank") local imgCrank = gfx.image.new("gfx/crank")
@ -57,6 +57,7 @@ function playdate.update()
updateMenu() updateMenu()
elseif mode == "game" or mode == "play" then elseif mode == "game" or mode == "play" then
song:setVolume(0.5)
updatePlayer() updatePlayer()
gfx.sprite.update() gfx.sprite.update()

View file

@ -2,7 +2,6 @@ local gfx <const> = playdate.graphics
local tileTable <const> = gfx.imagetable.new("gfx/tiles") local tileTable <const> = gfx.imagetable.new("gfx/tiles")
local tilemap <const> = gfx.tilemap.new() local tilemap <const> = gfx.tilemap.new()
tilemap:setImageTable(tileTable) tilemap:setImageTable(tileTable)
local tiles = {} local tiles = {}
local sprTiles = gfx.sprite.new(tilemap) local sprTiles = gfx.sprite.new(tilemap)

View file

@ -1,5 +1,5 @@
import "CoreLibs/math" import "CoreLibs/math"
import "CoreLibs/animator" import "CoreLibs/animation"
local velocity = {x=0,y=0} local velocity = {x=0,y=0}
local lerpmnt <const> = 0.5 local lerpmnt <const> = 0.5
@ -11,8 +11,11 @@ local exists = false
local active = false local active = false
local gfx <const> = playdate.graphics local gfx <const> = playdate.graphics
local imgRocket = gfx.image.new("gfx/rocket") local imgRocket = gfx.image.new("gfx/rocket")
local imgFire = gfx.imagetable.new("gfx/fire")
assert(imgRocket) assert(imgRocket)
local sprRocket = gfx.sprite.new(imgRocket) local sprRocket = gfx.sprite.new(imgRocket)
local loopFire = gfx.animation.loop.new(200,imgFire)
local sprFire = gfx.sprite.new(loopFire:image())
sprRocket:setCollideRect(7, 7, 14, 14) sprRocket:setCollideRect(7, 7, 14, 14)
local startpos = {x=0,y=0} local startpos = {x=0,y=0}
@ -36,6 +39,7 @@ function addPlayer(_x,_y,__x,__y)
sprBigRocket:add() sprBigRocket:add()
sprRocket:moveTo(_x,_y) sprRocket:moveTo(_x,_y)
sprRocket:add() sprRocket:add()
sprFire:add()
sprRocket:setVisible(true) sprRocket:setVisible(true)
end end
@ -47,6 +51,11 @@ function killPlayer()
end end
local function playerWin() local function playerWin()
if active then
song:stop()
song:load("sfx/song3")
song:play(1)
end
active = false active = false
exists = false exists = false
dead = true dead = true
@ -60,6 +69,7 @@ local function die()
end end
function updatePlayer() function updatePlayer()
sprFire:setImage(loopFire:image())
if active == true then if active == true then
if playdate.buttonIsPressed(playdate.kButtonUp) or playdate.buttonIsPressed(playdate.kButtonA) then if playdate.buttonIsPressed(playdate.kButtonUp) or playdate.buttonIsPressed(playdate.kButtonA) then
velocity.x = velocity.x + math.sin(math.rad(playdate.getCrankPosition())) /2 velocity.x = velocity.x + math.sin(math.rad(playdate.getCrankPosition())) /2
@ -97,7 +107,10 @@ function updatePlayer()
sprRocket:setScale(scale,scale) sprRocket:setScale(scale,scale)
sprFire:moveTo(sprRocket.x-math.sin(math.rad(playdate.getCrankPosition())*10),sprRocket.y+math.cos(math.rad(playdate.getCrankPosition()))*10)
sprRocket:setRotation(playdate.getCrankPosition()) sprRocket:setRotation(playdate.getCrankPosition())
sprFire:setRotation(playdate.getCrankPosition())
end end
function updateExit() function updateExit()

View file

@ -1,11 +1,14 @@
import "CoreLibs/animator" import "CoreLibs/animator"
import "CoreLibs/animation"
local gfx <const> = playdate.graphics local gfx <const> = playdate.graphics
local imgSaw = gfx.image.new("gfx/sawblade") local imgSaw = gfx.imagetable.new("gfx/sawblades")
local imgTarget = gfx.image.new("gfx/target") local imgTarget = gfx.image.new("gfx/target")
assert(imgSaw) assert(imgSaw)
assert(imgTarget) assert(imgTarget)
local loopSaws = gfx.animation.loop.new(200, imgSaw)
local blades = {} local blades = {}
local spinblades = {} local spinblades = {}
@ -14,7 +17,7 @@ function loadBlades(_blades)
local b = _blades[i] local b = _blades[i]
b.start = playdate.geometry.point.new(b.start.x,b.start.y) 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.ends = playdate.geometry.point.new(b.ends.x,b.ends.y)
b.saw = gfx.sprite.new(imgSaw) b.saw = gfx.sprite.new(loopSaws:image())
b.saw:moveTo(b.start) b.saw:moveTo(b.start)
b.saw:setCollideRect(0,0,16,16) b.saw:setCollideRect(0,0,16,16)
b.saw:add() b.saw:add()
@ -37,7 +40,7 @@ function loadSpins(_spins)
for i = 1, #_spins, 1 do for i = 1, #_spins, 1 do
local s = _spins[i] local s = _spins[i]
if s.middle then if s.middle then
s.middle = gfx.sprite.new(imgSaw) s.middle = gfx.sprite.new(loopSaws:image())
s.middle:setCollideRect(0,0,16,16) s.middle:setCollideRect(0,0,16,16)
else else
s.middle = gfx.sprite.new(imgTarget) s.middle = gfx.sprite.new(imgTarget)
@ -52,7 +55,7 @@ function loadSpins(_spins)
local degrees = (360 / s.arms) * i local degrees = (360 / s.arms) * i
local position = {x=math.sin(math.rad(degrees)) * 20 * p,y=math.cos(math.rad(degrees)) * 20 * p} local position = {x=math.sin(math.rad(degrees)) * 20 * p,y=math.cos(math.rad(degrees)) * 20 * p}
sb.arms[i][p] = gfx.sprite.new(imgSaw) sb.arms[i][p] = gfx.sprite.new(loopSaws:image())
sb.arms[i][p]:moveTo(s.x + position.x, s.y + position.y) sb.arms[i][p]:moveTo(s.x + position.x, s.y + position.y)
sb.arms[i][p]:setCollideRect(0,0,16,16) sb.arms[i][p]:setCollideRect(0,0,16,16)
sb.arms[i][p]:add() sb.arms[i][p]:add()
@ -65,6 +68,7 @@ end
function updateSaws() function updateSaws()
for b=1, #blades, 1 do for b=1, #blades, 1 do
b = blades[b] b = blades[b]
b.saw:setImage(loopSaws:image())
local pos = playdate.geometry.point.new(b.saw:getPosition()) local pos = playdate.geometry.point.new(b.saw:getPosition())
if pos == b.start then if pos == b.start then
local a = gfx.animator.new(b.speed*1000, b.start, b.ends) local a = gfx.animator.new(b.speed*1000, b.start, b.ends)
@ -86,6 +90,7 @@ function updateSaws()
local degrees = (360 / #spinblades[spinner].arms * arm + spinblades[spinner].time) local degrees = (360 / #spinblades[spinner].arms * arm + spinblades[spinner].time)
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]:setImage(loopSaws:image())
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)
end end
end end

Binary file not shown.

After

Width:  |  Height:  |  Size: 137 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 189 B

View file

@ -0,0 +1,4 @@
{"bigrocket":{"x":500,"y":160},"dimensions":{"x":35,"y":13},"rocket":{"x":107.906977,"y":157.674419},
"saws":[{"ends":{"x":72,"y":88},"speed":2.5,"start":{"x":25,"y":88}},
{"ends":{"x":248,"y":184},"speed":2,"start":{"x":248,"y":136}}],
"tiles":[{"t":2,"x":1,"y":1},{"t":2,"x":16,"y":1},{"t":2,"x":20,"y":1},{"t":2,"x":35,"y":1},{"t":2,"x":16,"y":5},{"t":2,"x":20,"y":5},{"t":2,"x":6,"y":6},{"t":2,"x":9,"y":6},{"t":2,"x":12,"y":6},{"t":2,"x":24,"y":7},{"t":2,"x":28,"y":7},{"t":2,"x":16,"y":8},{"t":2,"x":20,"y":8},{"t":2,"x":25,"y":8},{"t":2,"x":27,"y":8},{"t":2,"x":26,"y":9},{"t":2,"x":26,"y":10},{"t":2,"x":25,"y":11},{"t":2,"x":27,"y":11},{"t":2,"x":24,"y":12},{"t":2,"x":28,"y":12},{"t":2,"x":1,"y":13},{"t":2,"x":9,"y":13},{"t":2,"x":24,"y":13},{"t":2,"x":28,"y":13},{"t":2,"x":35,"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":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":14,"y":1},{"t":3,"x":15,"y":1},{"t":3,"x":17,"y":1},{"t":3,"x":18,"y":1},{"t":3,"x":19,"y":1},{"t":3,"x":21,"y":1},{"t":3,"x":22,"y":1},{"t":3,"x":23,"y":1},{"t":3,"x":24,"y":1},{"t":3,"x":25,"y":1},{"t":3,"x":26,"y":1},{"t":3,"x":27,"y":1},{"t":3,"x":28,"y":1},{"t":3,"x":29,"y":1},{"t":3,"x":30,"y":1},{"t":3,"x":31,"y":1},{"t":3,"x":32,"y":1},{"t":3,"x":33,"y":1},{"t":3,"x":34,"y":1},{"t":3,"x":17,"y":5},{"t":3,"x":18,"y":5},{"t":3,"x":19,"y":5},{"t":3,"x":7,"y":6},{"t":3,"x":8,"y":6},{"t":3,"x":10,"y":6},{"t":3,"x":11,"y":6},{"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":3,"x":8,"y":13},{"t":3,"x":10,"y":13},{"t":3,"x":11,"y":13},{"t":3,"x":12,"y":13},{"t":3,"x":13,"y":13},{"t":3,"x":14,"y":13},{"t":3,"x":15,"y":13},{"t":3,"x":16,"y":13},{"t":3,"x":17,"y":13},{"t":3,"x":18,"y":13},{"t":3,"x":19,"y":13},{"t":3,"x":20,"y":13},{"t":3,"x":21,"y":13},{"t":3,"x":22,"y":13},{"t":3,"x":23,"y":13},{"t":3,"x":25,"y":13},{"t":3,"x":26,"y":13},{"t":3,"x":27,"y":13},{"t":3,"x":29,"y":13},{"t":3,"x":30,"y":13},{"t":3,"x":31,"y":13},{"t":3,"x":32,"y":13},{"t":3,"x":33,"y":13},{"t":3,"x":34,"y":13},{"t":4,"x":1,"y":2},{"t":4,"x":16,"y":2},{"t":4,"x":20,"y":2},{"t":4,"x":35,"y":2},{"t":4,"x":1,"y":3},{"t":4,"x":16,"y":3},{"t":4,"x":20,"y":3},{"t":4,"x":35,"y":3},{"t":4,"x":1,"y":4},{"t":4,"x":16,"y":4},{"t":4,"x":20,"y":4},{"t":4,"x":35,"y":4},{"t":4,"x":1,"y":5},{"t":4,"x":35,"y":5},{"t":4,"x":1,"y":6},{"t":4,"x":16,"y":6},{"t":4,"x":20,"y":6},{"t":4,"x":35,"y":6},{"t":4,"x":1,"y":7},{"t":4,"x":9,"y":7},{"t":4,"x":16,"y":7},{"t":4,"x":20,"y":7},{"t":4,"x":35,"y":7},{"t":4,"x":1,"y":8},{"t":4,"x":9,"y":8},{"t":4,"x":35,"y":8},{"t":4,"x":1,"y":9},{"t":4,"x":9,"y":9},{"t":4,"x":35,"y":9},{"t":4,"x":1,"y":10},{"t":4,"x":9,"y":10},{"t":4,"x":35,"y":10},{"t":4,"x":1,"y":11},{"t":4,"x":9,"y":11},{"t":4,"x":35,"y":11},{"t":4,"x":1,"y":12},{"t":4,"x":9,"y":12},{"t":4,"x":35,"y":12}]}