Compare commits

...

2 Commits

Author SHA1 Message Date
Juhani Krekelä 7b742c35c4 Make enemies spin 2023-06-03 22:35:24 +03:00
Juhani Krekelä 093b9a7ece Render enemies as pentagons 2023-06-03 22:30:03 +03:00
1 changed files with 16 additions and 3 deletions

View File

@ -154,6 +154,7 @@ function spawnEnemy(x, y)
x = x, x = x,
y = y, y = y,
until_shoot = enemy_min_shoot + math.random() * (enemy_max_shoot - enemy_min_shoot), until_shoot = enemy_min_shoot + math.random() * (enemy_max_shoot - enemy_min_shoot),
angle = math.random() * 2 * math.pi,
alive = true alive = true
}) })
end end
@ -315,6 +316,9 @@ function updateEnemies(dt)
end end
end end
local dangle = 10 / (2 + enemy.until_shoot) * dt
enemy.angle = enemy.angle + dangle
if not enemy.alive then if not enemy.alive then
table.remove(enemies, i) table.remove(enemies, i)
else else
@ -449,9 +453,18 @@ end
function drawEnemies() function drawEnemies()
for _, enemy in ipairs(enemies) do for _, enemy in ipairs(enemies) do
love.graphics.setColor(0.7, 0.5, 1) love.graphics.setColor(0.7, 0.5, 1)
local x, y = toScreenCoordinates(enemy.x, enemy.y)
local radius = toScreenSize(enemy_radius) local fifth = 2 * math.pi / 5
love.graphics.circle('fill', x, y, radius) local points = {}
for i = 0, 4 do
local x = enemy.x + math.cos(i * fifth + enemy.angle) * enemy_radius
local y = enemy.y + math.sin(i * fifth + enemy.angle) * enemy_radius
local x, y = toScreenCoordinates(x, y)
table.insert(points, x)
table.insert(points, y)
end
love.graphics.polygon('fill', points)
end end
end end