vision/scene/title.lua
2022-10-14 11:33:20 +02:00

107 lines
2.3 KiB
Lua

TitleScene = Object.extend(Object)
function TitleScene:new()
end
function TitleScene:init()
logoWidth = gameLogo:getWidth()
logoHeight = gameLogo:getHeight()
progressDelta = 0
progressTarget = 0.5
percentage = 0
introSound:play()
state = "in"
pSystem = love.graphics.newParticleSystem(titleParticle,128)
pSystem:setParticleLifetime(0,0.8)
pSystem:setLinearAcceleration(-6,20,6,25)
pSystem:setSpeed(40,50)
pSystem:setRotation(10,20)
pSystem:setSpin(10,20)
pSystem:setRadialAcceleration(5,20)
pSystem:setTangentialAcceleration(10,20)
pSystem:setSizeVariation(0.5)
pSystem:setSizes(1,0.9,0.9,0.8,0.6,0.5,0.3,0.1)
pSystem:setColors(
1,1,1,0.8,
1,1,1,0.8,
1,1,1,0.8,
1,1,1,0.7,
1,1,1,0.5,
1,1,1,0.3,
1,1,1,0.2,
1,1,1,0.1
)
pSystem:setDirection(315*(math.pi/180))
end
function TitleScene:update(dt)
pSystem:update(dt)
if progressDelta < progressTarget then
progressDelta = math.min( progressTarget, progressDelta + dt )
end
percentage = (progressDelta/progressTarget)
if state == "wait" then
pSystem:emit( 32 )
end
if state == "in" and progressDelta == progressTarget then
state = "wait"
progressDelta = 0
progressTarget = 3
percentage = 0
end
if state == "wait" and progressDelta == progressTarget then
state = "out"
progressDelta = 0
progressTarget = 0.5
percentage = 0
end
if state == "out" and progressDelta == progressTarget then
state = "complete"
end
if state == "complete" then
pSystem:stop()
pSystem = nil
currentScene = GameScene
currentScene:init()
end
end
function TitleScene:draw()
if state == "in" then
logoAlpha = percentage
logoYpos = ( (windowHeight - logoHeight) / 2 ) + ( 10 * (1-percentage) )
elseif state == "wait" then
logoAlpha = 1
logoYpos = ( (windowHeight - logoHeight) / 2 )
elseif state == "out" then
logoAlpha = 1 - percentage
logoYpos = ( (windowHeight - logoHeight) / 2 ) - ( 20 * (percentage) )
end
love.graphics.setColor(255,255,255, logoAlpha)
if pSystem ~= nil then
love.graphics.draw(pSystem, ((windowWidth - logoWidth) / 2) + 300, logoYpos + 8)
end
love.graphics.draw(gameLogo, (windowWidth - logoWidth) / 2, logoYpos )
end
function TitleScene:drawHud()
end
function TitleScene:keypressed(key,unicode)
end