Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

enemy.lua 1.4 KiB

3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. enemy = Class{}
  2. G = 6.67e-5
  3. function enemy:init(x, y, del, tm, atm)
  4. self.x = x
  5. self.y = y
  6. self.image = love.graphics.newImage("entities/enemy/enemy.png")
  7. self.cannon = love.graphics.newImage("entities/enemy/cannon.png")
  8. self.w = self.image:getWidth()
  9. self.h = self.image:getHeight()
  10. self.cannonw = self.cannon:getWidth()
  11. self.cannonh = self.cannon:getHeight()
  12. self.angle = 0
  13. self.deletable = del
  14. self.maxtimer = tm
  15. self.destX = x
  16. self.otimer = tm
  17. self.timer = tm
  18. self.color = {1,1,1,1}
  19. self.appeared = false
  20. self.appeartimer = atm
  21. end
  22. function enemy:update(dt)
  23. self.timer = self.timer - dt
  24. if self.timer <= 0 then
  25. self.timer = self.maxtimer
  26. self:shoot()
  27. end
  28. local distanceToShip = math.sqrt((firstShip.x - self.x)^2 + (firstShip.y - self.y)^2)
  29. self.angle = math.atan( (firstShip.y - self.y)/ (firstShip.x - self.x))
  30. if self.x < firstShip.x then
  31. self.angle = self.angle - 3.14159
  32. end
  33. end
  34. function enemy:time(dt)
  35. self.appeartimer = self.appeartimer - dt
  36. end
  37. function enemy:draw()
  38. love.graphics.setColor(unpack(self.color))
  39. love.graphics.draw(self.image, self.x, self.y, 0, 1, 1, self.w/2, self.w/2)
  40. love.graphics.draw(self.cannon, self.x, self.y, self.angle-1.57, 1, 1, self.cannonw/2, self.cannonh/2)
  41. end
  42. function enemy:shoot()
  43. table.insert(projectiles, projectile(self.x, self.y, 0.5, self.angle+3.14, 5))
  44. sounds["launch"]:stop()
  45. sounds["launch"]:play()
  46. end