109 lines
3.7 KiB

  1. selectlv = Class{}
  2. levels = {}
  3. table.insert(levels, menu:addButton("Level 1", function ()
  4. menuLoaded = false
  5. objReset()
  6. gameState = "levelgeneral"
  7. currentLevel = 1
  8. end ))
  9. table.insert(levels, menu:addButton("Level 2", function ()
  10. if saveData.levelsBeaten > 0 then
  11. menuLoaded = false
  12. objReset()
  13. gameState = "levelgeneral"
  14. currentLevel = 2
  15. end
  16. end ))
  17. table.insert(levels, menu:addButton("Level 3", function ()
  18. if saveData.levelsBeaten > 1 then
  19. menuLoaded = false
  20. objReset()
  21. gameState = "levelgeneral"
  22. currentLevel = 3
  23. end
  24. end ))
  25. table.insert(levels, menu:addButton("Level 4", function ()
  26. if saveData.levelsBeaten > 2 then
  27. menuLoaded = false
  28. objReset()
  29. gameState = "levelgeneral"
  30. currentLevel = 4
  31. end
  32. end ))
  33. table.insert(levels, menu:addButton("Level 5", function ()
  34. if saveData.levelsBeaten > 3 then
  35. menuLoaded = false
  36. objReset()
  37. gameState = "levelgeneral"
  38. currentLevel = 5
  39. end
  40. end ))
  41. table.insert(levels, menu:addButton("Level 6", function ()
  42. if saveData.levelsBeaten > 4 then
  43. menuLoaded = false
  44. objReset()
  45. gameState = "levelgeneral"
  46. currentLevel = 6
  47. end
  48. end ))
  49. table.insert(levels, menu:addButton("Level 7", function ()
  50. if saveData.levelsBeaten > 5 then
  51. menuLoaded = false
  52. objReset()
  53. gameState = "levelgeneral"
  54. currentLevel = 7
  55. end
  56. end ))
  57. table.insert(levels, menu:addButton("Level 8", function ()
  58. if saveData.levelsBeaten > 6 then
  59. menuLoaded = false
  60. objReset()
  61. gameState = "levelgeneral"
  62. currentLevel = 8
  63. end
  64. end ))
  65. table.insert(levels, menu:addButton("Go Back", function ()
  66. gameState = "menu"
  67. end ))
  68. local M = {}
  69. function selectlv.update(dt)
  70. if not menuLoaded then
  71. startTime = os.time(os.date("*t"))
  72. firstShip.x = -100
  73. menuLoaded = true
  74. table.insert(planets, planet(love.math.random(100, WINDOW_WIDTH-100), love.math.random(100, WINDOW_HEIGHT-100), 90000000, 0.3, love.graphics.newImage("entities/planet/planet.png")))
  75. if (planets[1].y < WINDOW_HEIGHT/2) then
  76. firstShip.y = love.math.random(WINDOW_HEIGHT/2, WINDOW_HEIGHT)
  77. else
  78. firstShip.y = love.math.random(0, WINDOW_HEIGHT/2)
  79. end
  80. end
  81. for i in ipairs(planets) do
  82. planets[i]:update(dt)
  83. end
  84. firstShip:update(dt)
  85. if shipIsHit then
  86. shipIsHit = false
  87. firstShip:reset()
  88. firstShip.x = -100
  89. if (planets[1].y < WINDOW_HEIGHT/2) then
  90. firstShip.y = love.math.random(WINDOW_HEIGHT/2, WINDOW_HEIGHT)
  91. else
  92. firstShip.y = love.math.random(0, WINDOW_HEIGHT/2)
  93. end
  94. --print("ship is hit")
  95. end
  96. end
  97. function selectlv.draw(dt)
  98. firstShip:draw()
  99. for i in ipairs(planets) do
  100. planets[i]:draw(dt)
  101. end
  102. menu:butt(levels, WINDOW_WIDTH, WINDOW_HEIGHT, WINDOW_WIDTH/2, WINDOW_HEIGHT/2, 40, WINDOW_WIDTH/3, "beatenGreen")
  103. love.keyboard.mouseisReleased = false
  104. end
  105. return selectlv