diff --git a/main.lua b/main.lua index f19bb1d..f5fc481 100644 --- a/main.lua +++ b/main.lua @@ -31,6 +31,7 @@ function love.load() for asteroidIndex, asteroid in ipairs(asteroids) do asteroid.angle = love.math.random() * (2 * math.pi) end + asteroidRadius = 80 end function love.update(dt) @@ -77,10 +78,19 @@ function love.update(dt) end end + local function areCirclesIntersecting(aX, aY, aRadius, bX, bY, bRadius) + return (aX - bX) ^ 2 + (aY - bY) ^ 2 <= (aRadius + bRadius) ^ 2 + end + for asteroidIndex, asteroid in ipairs(asteroids) do local asteroidSpeed = 20 asteroid.x = (asteroid.x + math.cos(asteroid.angle) * asteroidSpeed * dt) % arenaWidth - asteroid.y = (asteroid.y + math.cos(asteroid.angle) * asteroidSpeed * dt) % arenaHeight + asteroid.y = (asteroid.y + math.sin(asteroid.angle) * asteroidSpeed * dt) % arenaHeight + + if areCirclesIntersecting(shipX, shipY, shipRadius, asteroid.x, asteroid.y, asteroidRadius) then + love.load() + break + end end end @@ -107,7 +117,7 @@ function love.draw() for asteroidIndex, asteroid in ipairs(asteroids) do love.graphics.setColor(1, 1, 0) - love.graphics.circle('fill', asteroid.x, asteroid.y, 80) + love.graphics.circle('fill', asteroid.x, asteroid.y, asteroidRadius) end end end @@ -118,5 +128,6 @@ function love.draw() 'shipAngle:' .. shipAngle, 'shipX: ' .. shipX, 'shipSpeedX: ' .. shipSpeedX, + 'a1: ' .. asteroids[1].angle }, '\n')) end