Advertisement
Guest User

Untitled

a guest
Oct 25th, 2016
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.92 KB | None | 0 0
  1. love.graphics.setDefaultFilter('nearest', 'nearest')
  2. enemy = {}
  3. enemies_controller = {}
  4. enemies_controller.enemies = {}
  5. enemies_controller.image = love.graphics.newImage('enemy.png')
  6. enemies_controller.waveTime = 0
  7. enemies_controller.wonWaves = 0
  8.  
  9. function checkCollisions(enemies, bullets)
  10. for i,e in ipairs(enemies) do
  11. for _,b in pairs(bullets) do
  12. if b.y <= e.y + e.height and
  13. b.x > e.x and
  14. b.x < e.x + e.width then
  15. table.remove(enemies, i)
  16. table.remove(bullets, i)
  17. end
  18. end
  19. end
  20. end
  21.  
  22. function love.load()
  23. background_music = love.audio.newSource('music2.mp3')
  24. love.audio.play(background_music)
  25. background_music:setVolume(0.2)
  26. victory_music = love.audio.newSource('victory.wav')
  27. victory_music:setVolume(0.3)
  28. victory_music:setLooping(false)
  29. defeat_music = love.audio.newSource('defeat.wav')
  30. defeat_music:setVolume(0.3)
  31. defeat_music:setLooping(false)
  32. game_over = false
  33. background_image = love.graphics.newImage('background2.png')
  34. player = {}
  35. player.x = 0
  36. player.y = 108
  37. player.bullets = {}
  38. player.cooldown = 18
  39. player.speed = 2
  40. player.image = love.graphics.newImage('spaceship.png')
  41. player.fire_sound = love.audio.newSource('laser.wav')
  42. player.fire = function()
  43. if player.cooldown <= 0 then
  44. love.audio.play(player.fire_sound)
  45. player.cooldown = 18
  46. bullet = {}
  47. bullet.x = player.x + 4
  48. bullet.y = player.y - 1
  49. table.insert(player.bullets, bullet)
  50. end
  51. end
  52. end
  53.  
  54. function enemies_controller:spawnEnemy(x, y)
  55. enemy = {}
  56. enemy.x = x
  57. enemy.y = y
  58. enemy.width = 10
  59. enemy.height = 10
  60. enemy.bullets = {}
  61. enemy.cooldown = 2
  62. enemy.speed = .1
  63. table.insert(self.enemies, enemy)
  64. end
  65.  
  66. function enemies_controller:spawnWave()
  67. for i=0, 10 do
  68. enemies_controller:spawnEnemy(i * 15, 0)
  69. end
  70. end
  71.  
  72. function enemy:fire()
  73. if self.cooldown <= 0 then
  74. self.cooldown = 20
  75. bullet = {}
  76. bullet.x = self.x + 35
  77. bullet.y = self.y
  78. table.insert(self.bullets, bullet)
  79. end
  80. end
  81.  
  82. function love.update(dt)
  83. player.cooldown = player.cooldown - 1
  84.  
  85. if love.keyboard.isDown("right") or love.keyboard.isDown("d") then
  86. player.x = player.x + player.speed
  87. elseif love.keyboard.isDown("left") or love.keyboard.isDown("a") then
  88. player.x = player.x - player.speed
  89. end
  90.  
  91. if love.keyboard.isDown("space") then
  92. player.fire()
  93. end
  94.  
  95. if enemies_controller.wonWaves == 100 then
  96. -- we win!
  97. game_win = true
  98. end
  99.  
  100. for _,e in pairs(enemies_controller.enemies) do
  101. if e.y >= love.graphics.getHeight()/5 then
  102. game_over = true
  103. end
  104. e.y = e.y + 1 * e.speed
  105. end
  106.  
  107. if enemies_controller.waveTime <= 0 then
  108. enemies_controller:spawnWave()
  109. enemies_controller.waveTime = 5
  110. enemies_controller.wonWaves = enemies_controller.wonWaves + 1
  111. else
  112. enemies_controller.waveTime = enemies_controller.waveTime - dt
  113. end
  114.  
  115. for i,b in ipairs(player.bullets) do
  116. if b.y < -10 then
  117. table.remove(player.bullets, i)
  118. end
  119. b.y = b.y - 3
  120. checkCollisions(enemies_controller.enemies, player.bullets)
  121. end
  122. end
  123.  
  124. function love.draw()
  125. love.graphics.setColor(255,255,255)
  126. love.graphics.draw(background_image, 0,0,0,1.25)
  127. love.graphics.scale(5)
  128.  
  129. if game_over then
  130. love.graphics.print("Game Over!", 45, 45)
  131. background_music:stop()
  132. defeat_music:play()
  133. return
  134. elseif game_win then
  135. love.graphics.print("Victory!", 55, 45)
  136. background_music:stop()
  137. victory_music:play()
  138. end
  139.  
  140. -- draw the players image specified in player.image
  141. love.graphics.setColor(255, 255, 255)
  142. love.graphics.draw(player.image, player.x, player.y, 0)
  143.  
  144. -- draw enemies image specified in enemies_controller.image
  145. for _,e in pairs(enemies_controller.enemies) do
  146. love.graphics.draw(enemies_controller.image, e.x, e.y, 0)
  147. end
  148.  
  149. -- draw bullets
  150. love.graphics.setColor(255, 0, 0)
  151. for _,b in pairs(player.bullets) do
  152. love.graphics.rectangle("fill", b.x, b.y, 2, 2)
  153. end
  154. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement