stackinghats fini et horizontalhats pattern

This commit is contained in:
Deadzi06
2026-08-09 19:50:33 +02:00
parent 0796d64a8d
commit 78130a3310
3 changed files with 87 additions and 21 deletions

View File

@@ -2,11 +2,9 @@ local StackingHats, super = Class(Wave)
function StackingHats:init()
super.init(self)
-- The duration of our wave, in seconds. (Defaults to `5`)
self.time = 10
self.count = 0
self.time = 8
self.count = 1
end
function StackingHats:onStart()
@@ -16,35 +14,42 @@ function StackingHats:onStart()
arenaX, arenaY = arena:getBottomLeft()
arenaX2, arenaY2 = arena:getBottomRight()
self.collider = LineCollider(self, arenaX, arenaY, arenaX2, arenaY2)
self.timer:everyInstant(1, function()
local x = SCREEN_WIDTH / 2
local collumn = {SCREEN_WIDTH/2*0.87, SCREEN_WIDTH/2, SCREEN_WIDTH/2*1.13}
local speed = 5
self.timer:everyInstant(0.75, function()
local x = collumn[math.random(3)]
local y = arena:getTop() * 0.5
self.bullets[self.count] = self:spawnBullet("hatbulllet", x, y)
-- set the bullet's speed to 4 (pixels per 1/30th second)
self.bullets[self.count].physics.speed = 4
self.bullets[self.count] = self:spawnBullet("hatbulllet", x, y, math.rad(90), speed)
self.count = self.count + 1
speed = speed * 1.029
end)
super.onStart(self)
end
function StackingHats:update()
-- code here gets called every frame
for i = 0, self.count -1, 1 do
for j = 0, i-1, 1 do
if (i ~= j) then
for i = 1, self.count, 1 do
if (self.bullets[i]) then
for j = 1, i-1, 1 do
if (self.bullets[i].collider:collidesWith(self.bullets[j])) then
self.bullets[i].physics.speed = 0
end
end
end
if (self.bullets[i].collider:collidesWith(self)) then
self.bullets[i].physics.speed = 0
if (self.bullets[i].collider:collidesWith(self)) then
self.bullets[i].physics.speed = 0
end
end
end
super.update(self)
end
function StackingHats:draw()
super.draw(self)
if DEBUG_RENDER then
if (self.collider) then
self.collider:draw(0,1,0,1)
end
end
end
return StackingHats