|
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- projectile = Class{}
-
- G = 6.67e-5
-
- function projectile:init(x, y, v, angle, timer)
- self.x = x
- self.y = y
- self.dx = 0
- self.dy = 0
- self.image = love.graphics.newImage("entities/enemy/missile-01.png")
- self.w = self.image:getWidth()
- self.h = self.image:getHeight()
- self.angle = angle
- self.v = v
- self.timer = timer
- self.killed = false
- self.dx = math.cos(self.angle) * self.v
- self.dy = math.sin(self.angle) * self.v
- self.vx = 0
- self.vy = 0
- end
-
- function projectile:update(dt)
- local distanceToShip = math.sqrt((firstShip.x - self.x)^2 + (firstShip.y - self.y)^2)
- self.timer = self.timer - dt
- if self.timer <= 0 then
- self.killed = true
- end
- self.vx = self.vx + self.dx
- self.vy = self.vy + self.dy
- self.x = self.x + self.vx
- self.y = self.y + self.vy
- if distanceToShip < firstShip.width/2 then
- shipIsHit = true
- sounds["close"]:stop()
- sounds["boom"]:play()
- sounds["boom"]:setVolume(1)
- end
- for i in ipairs(planets) do
- if planets[i].deletable == false then
- distanceToShip = math.sqrt((planets[i].x - self.x)^2 + (planets[i].y - self.y)^2)
- if distanceToShip < planets[i].w/4 then
- sounds["boom"]:play()
- sounds["boom"]:setVolume(0.4)
- local q = #explosions
- table.insert(explosions, explosion(self.x, self.y, 10, {1,1,1,1}))
- explosions[q+1].type = 2
- table.remove(planets, i)
- self.killed = true
- end
- end
-
- end
- end
-
- function projectile:draw()
- love.graphics.draw(self.image, self.x, self.y, self.angle, 1, 1, self.w/2, self.w/2)
- end
|