rework + cool bomber
This commit is contained in:
@@ -1,13 +1,13 @@
|
||||
Enemy = {}
|
||||
class('Enemy').extends(NobleSprite)
|
||||
|
||||
function Enemy:init(x,y)
|
||||
function Enemy:init(x, y, isScout)
|
||||
Enemy.super.init(self)
|
||||
self:moveTo(x, y)
|
||||
self:setZIndex(4)
|
||||
self:add(x,y)
|
||||
self.markImage = Graphics.image.new("assets/sprites/enemy"..math.random(1,2)) -- TODO: make it random
|
||||
self.deadImage = Graphics.image.new("assets/sprites/enemy1_3")
|
||||
self.markImage = Graphics.image.new("assets/sprites/bomber/enemy_alive_"..math.random(1,2))
|
||||
self.deadImage = Graphics.image.new("assets/sprites/bomber/enemy_dead")
|
||||
self.hitSound = playdate.sound.fileplayer.new("assets/audio/hit1")
|
||||
self:setImage(self.markImage)
|
||||
self.removed = false
|
||||
@@ -18,11 +18,21 @@ function Enemy:init(x,y)
|
||||
})
|
||||
self:setCollideRect(-6, -6, 46, 46)
|
||||
self:setSize(32, 32)
|
||||
|
||||
|
||||
self.vx = 0
|
||||
self.vy = 0
|
||||
self.isDying = false
|
||||
self.friction = 0.95
|
||||
|
||||
self.isScout = isScout or false
|
||||
if self.isScout then
|
||||
self.baseSpeed = math.random(8, 14) / 10
|
||||
self.zigzagTime = math.random() * 100
|
||||
self.zigzagAmplitude = math.random(8, 15) / 10
|
||||
self.zigzagFrequency = math.random(4, 8) / 100
|
||||
else
|
||||
self.baseSpeed = math.random(2, 8) / 10
|
||||
end
|
||||
end
|
||||
|
||||
function Enemy:update()
|
||||
@@ -40,8 +50,13 @@ function Enemy:update()
|
||||
self.removed = true
|
||||
end
|
||||
elseif not self.removed then
|
||||
speed = math.random(0, 7)/10
|
||||
self:moveBy(0, BomberScene.instance.scrollSpeed + speed)
|
||||
speed = self.baseSpeed + (BomberScene.enemySpeedBonus or 0)
|
||||
local dx = 0
|
||||
if self.isScout then
|
||||
self.zigzagTime = self.zigzagTime + self.zigzagFrequency
|
||||
dx = math.sin(self.zigzagTime) * self.zigzagAmplitude
|
||||
end
|
||||
self:moveBy(dx, BomberScene.instance.scrollSpeed + speed)
|
||||
else
|
||||
self:moveBy(0, BomberScene.instance.scrollSpeed)
|
||||
end
|
||||
@@ -89,6 +104,9 @@ function Enemy:applyExplosionForce(explosionX, explosionY)
|
||||
self.vy = dy * force * 0.5
|
||||
|
||||
self.isDying = true
|
||||
|
||||
|
||||
BomberScene.killCount = BomberScene.killCount + 1
|
||||
FloatingText(self.x, self.y)
|
||||
|
||||
self:setRotation(math.random() * 360)
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user