Implement charge meter.

This commit is contained in:
Anna Rose Wiggins 2023-09-30 01:10:27 -04:00
parent b222ce3d67
commit e045eec163
4 changed files with 78 additions and 3 deletions

View file

@ -4,6 +4,7 @@ import "CoreLibs/graphics"
import "CoreLibs/sprites"
import "CoreLibs/timer"
import "bullet"
import "ui"
local gfx <const> = playdate.graphics
@ -20,7 +21,7 @@ local MAX_CHARGE <const> = 100
class("Kani").extends(gfx.sprite)
function Kani:init()
function Kani:init(ui)
local img = gfx.image.new("images/kani.png")
Kani.super.init(self, img)
print(self)
@ -33,6 +34,9 @@ function Kani:init()
self.weaponPower = 0
self.firingMode = false
-- the UI gets passed in to Kani so that we can update pieces of it easily.
self.ui = ui
-- input handlers
self.inputHandlers = {
upButtonDown = function() self.vector.y = -1 end,
@ -54,7 +58,7 @@ end
function Kani:chargeReserve(change)
if change < 0 then return end
self.reserveCharge = math.min(self.reserveCharge + change / 15, 100)
print("Reserve charge at " .. self.reserveCharge)
self.ui.chargeMeter:setValue(self.reserveCharge)
end
function Kani:chargeShot()
@ -66,6 +70,7 @@ function Kani:chargeShot()
self.reserveCharge -= requiredPower
self.weaponPower += 1
print("Shot charged to size " .. self.weaponPower)
self.ui.chargeMeter:setValue(self.reserveCharge)
end
end