This commit is contained in:
assada 2024-06-03 20:08:46 +03:00
parent 9cd5c1bd81
commit b0256d7ae3
Signed by: assada
GPG Key ID: D4860A938E541F06
4 changed files with 46 additions and 11 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -3,6 +3,8 @@ import "CoreLibs/object"
import "CoreLibs/sprites" import "CoreLibs/sprites"
import "CoreLibs/timer" import "CoreLibs/timer"
import "CoreLibs/ui" import "CoreLibs/ui"
import "CoreLibs/math"
-- Libraries -- Libraries
import 'libraries/noble/Noble' import 'libraries/noble/Noble'

View File

@ -17,9 +17,25 @@ local function screenShake(shakeTime, shakeMagnitude)
end end
end end
function scene:setValues() function scene:drawBackground()
scene.background = Graphics.image.new("assets/sprites/bg") local speed = 0.1
if Ground.player ~= nil and Ground.player.isMovingRight() == true then
speed = 0.2
end
if scene.distance > 0 then
scene.bgX = scene.bgX - speed
end
if scene.bgX <= -400 then
scene.bgX = 0
end
self.bg:draw(scene.bgX or 0, 0)
end
function scene:setValues()
self.bg = Graphics.image.new("assets/sprites/bgTest")
scene.bgX = 0
scene.telemLostSound = playdate.sound.fileplayer.new("assets/audio/telemko") scene.telemLostSound = playdate.sound.fileplayer.new("assets/audio/telemko")
scene.telemLostSoundPlayed = false scene.telemLostSoundPlayed = false
@ -35,6 +51,10 @@ function scene:setValues()
scene.levelAudio = playdate.sound.fileplayer.new("assets/audio/war") scene.levelAudio = playdate.sound.fileplayer.new("assets/audio/war")
scene.levelAudio:setVolume(0.7) scene.levelAudio:setVolume(0.7)
scene.helloAudio = playdate.sound.fileplayer.new("assets/audio/hello") scene.helloAudio = playdate.sound.fileplayer.new("assets/audio/hello")
scene.tank = nil
scene.distance = 900
end end
function scene:init() function scene:init()
@ -76,15 +96,15 @@ function scene:enter()
scene:spawnBaleba() scene:spawnBaleba()
end end
scene.helloAudio:play(1) --scene.helloAudio:play(1)
if scene.musicEnabled then if scene.musicEnabled then
scene.levelAudio:play(0) --scene.levelAudio:play(0)
end end
end
playdate.timer.performAfterDelay(1000, function() function round(number)
scene.tank = Tank(550, 190, scene.player, scene.ground) local formatted = string.format("%.2f", number)
scene:addSprite(scene.tank) -- Raw sprite return formatted
end)
end end
function scene:update() function scene:update()
@ -94,12 +114,24 @@ function scene:update()
return return
end end
if scene.distance > 0 then
scene.distance = scene.distance - 1
end
if scene.distance < 850 and scene.tank == nil then
scene.tank = Tank(500, 190, scene.player, scene.ground)
scene:addSprite(scene.tank) -- Raw sprite
end
if scene.player.isDead() then if scene.player.isDead() then
if scene.resultShowed ~= true then if scene.resultShowed ~= true then
Noble.Text.draw("Telemetry Lost", 200, 110, Noble.Text.ALIGN_CENTER, false, font) Noble.Text.draw("Telemetry Lost", 200, 110, Noble.Text.ALIGN_CENTER, false, font)
end end
else else
Noble.Text.draw("Bat: " .. math.floor(scene.player.getBat() / 100), 10, 215, Noble.Text.ALIGN_LEFT, false, font) local t = scene.player.getBat() / 10000
local lerpBat = playdate.math.lerp(12.0, 16.8, t)
Noble.Text.draw(round(lerpBat) .. "v", 10, 210, Noble.Text.ALIGN_LEFT, false, font)
Noble.Text.draw(scene.distance .. "m", 200, 40, Noble.Text.ALIGN_CENTER, false, font)
end end
if scene.player.isDead() and not scene.telemLostSoundPlayed then if scene.player.isDead() and not scene.telemLostSoundPlayed then

View File

@ -49,7 +49,8 @@ function Player:init(x, y)
self.touchingCeiling = false self.touchingCeiling = false
self.touchingWall = false self.touchingWall = false
Player.dead = false Player.dead = false
Player.bat = 10000 Player.fullBat = 10000
Player.bat = Player.fullBat
Player.dischargeRate = 1 Player.dischargeRate = 1
Player.moveRight = false Player.moveRight = false
self.lastDirection = nil self.lastDirection = nil
@ -172,7 +173,7 @@ function Player:handleMovementAndCollisions()
self:boom() self:boom()
return return
elseif collisionTag == 154 then -- Baleba elseif collisionTag == 154 then -- Baleba
self:boom(collisionObject) --self:boom(collisionObject)
return return
elseif collisionTag == 2 then -- Tank elseif collisionTag == 2 then -- Tank
self:boom() self:boom()