瀏覽代碼

Level 2

tags/earlywindows
Madiwka3 3 年之前
父節點
當前提交
c02b521b65
共有 2 個檔案被更改,包括 139 行新增0 行删除
  1. +134
    -0
      levels/level2.lua
  2. +5
    -0
      levels/selectlv.lua

+ 134
- 0
levels/level2.lua 查看文件

@@ -0,0 +1,134 @@
level2 = Class{}
local levelLoaded = false
local M = {}
function level2.update(dt)
if not levelLoaded then
shipsleft = 1
local planetImage = love.graphics.newImage("entities/planet/planet" .. math.random(1, 18) .. ".png")
planetsleft = 3
gameStatus = "setup"
playbutts = {}
guibutts = {}
VCAM.x, VCAM.y = WINDOW_WIDTH/2, WINDOW_HEIGHT/2
explosions = {}
shipIsHit = false
guimenu = mainMenu()
reachedGoal = false
lvlbase = base(1800, 500)
levelLoaded = true
table.insert(playbutts, menu:addButton("Return to setup", function()
gameStatus = "setup"
level2.reset()
end ))
table.insert(guibutts, menu:addButton("Release brake!", function ()
selectedItem = "none"
gameStatus = "play"
end
))
table.insert(guibutts, menu:addButton("To menu", function ()
level2.goBack()
end))
table.insert(planets, planet(700, 500, 50, 0.3, planetImage))
end
if reachedGoal then
if levelsBeaten < 2 then
levelsBeaten = 2
end
print("levelsBeaten is " .. levelsBeaten)
love.filesystem.write("save", levelsBeaten)
level2.goBack()
end
camera:update(dt)
lvlbase:update(dt)
--print(camera.x .. " " .. camera.y)
for i, explosion in ipairs(explosions) do
explosion:update(dt)
if explosion.killed then
table.remove(explosions, i)
gameStatus = "setup"
level2.reset()
end
end
if gameStatus == "play" then
camera.x, camera.y = firstShip.x - firstShip.height*4, firstShip.y- firstShip.width
--print(camera.x .. firstShip.x)
if shipIsHit then
if #explosions == 0 then
table.insert(explosions, explosion(firstShip.x, firstShip.y, 100, {1,1,1,1}))
end
end
firstShip:update(dt)
for i in ipairs(planets) do
planets[i]:update(dt)
end
else
camera:follow(VCAM.x, VCAM.y)
end
level2.GUIControl()
end

function level2.draw()
love.graphics.setColor(1,1,1,1)
camera:attach()
firstShip:draw()
lvlbase:draw()
for i in ipairs(planets) do
planets[i]:draw(dt)
end
--love.graphics.rectangle("fill",VCAM.x,VCAM.y,30,30)
if shipIsHit then
for i, explosion in ipairs(explosions) do
explosion:render()
--print("exploding")
end
end
camera:detach()
camera:draw()
if gameStatus == "setup" then
GUIDraw("left")
elseif gameStatus == "play" then
guimenu:butt(playbutts, WINDOW_WIDTH, WINDOW_HEIGHT, 1100, WINDOW_HEIGHT-50, 40, WINDOW_WIDTH/3)
end
end
function level2.goBack()
level2.reset()
gameStatus = "setup"
firstShip.path = {}
levelLoaded = false
for k in pairs(planets) do
planets[k] = nil
end
gameState = "selectlv"
end
function level2.reset()
firstShip:reset()
for k in pairs(planets) do
planets[k] = nil
end
local planetImage = love.graphics.newImage("entities/planet/planet" .. math.random(1, 18) .. ".png")
table.insert(planets, planet(700, 500, 50, 0.3, planetImage))
shipsleft = 1
shipIsHit = false
planetsleft = 3
end
function level2.GUIControl()
if (love.keyboard.isDown('a') and VCAM.x > WINDOW_WIDTH/2) then
VCAM.x = VCAM.x - 10
end
if (love.keyboard.isDown('d')) then
VCAM.x = VCAM.x + 10
end
end
return level2


+ 5
- 0
levels/selectlv.lua 查看文件

@@ -3,6 +3,11 @@ levels = {}
table.insert(levels, menu:addButton("Level 1", function ()
gameState = "level1"
end ))
table.insert(levels, menu:addButton("Level 2", function ()
if levelsBeaten > 0 then
gameState = "level2"
end
end ))





Loading…
取消
儲存