Reorganized src folder.
This commit is contained in:
70
src/gstates/gstate.lua
Normal file
70
src/gstates/gstate.lua
Normal file
@@ -0,0 +1,70 @@
|
||||
------------------------------------------------------------------------------
|
||||
-- Imports
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
local make_class = require 'src.utils.classes'
|
||||
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
-- Class definitions
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
local GameState = make_class()
|
||||
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
-- Class methods
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
function GameState:_init(name, index)
|
||||
self.name = name
|
||||
self.index = index
|
||||
self.valid = false
|
||||
end
|
||||
|
||||
|
||||
function GameState:load()
|
||||
end
|
||||
|
||||
|
||||
function GameState:update(_)
|
||||
return self.index
|
||||
end
|
||||
|
||||
|
||||
function GameState:draw()
|
||||
end
|
||||
|
||||
|
||||
function GameState:unload()
|
||||
end
|
||||
|
||||
|
||||
function GameState:keypressed(_, _ , _)
|
||||
end
|
||||
|
||||
|
||||
function GameState:textinput(_)
|
||||
end
|
||||
|
||||
|
||||
function GameState:keyreleased(_, _)
|
||||
end
|
||||
|
||||
|
||||
function GameState:mousemoved(_, _, _, _)
|
||||
end
|
||||
|
||||
|
||||
function GameState:mousepressed(_, _, _)
|
||||
end
|
||||
|
||||
|
||||
function GameState:mousereleased(_, _, _)
|
||||
end
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
-- Module return
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
return GameState
|
||||
113
src/gstates/intro.lua
Normal file
113
src/gstates/intro.lua
Normal file
@@ -0,0 +1,113 @@
|
||||
------------------------------------------------------------------------------
|
||||
-- Imports
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
local love = require 'love'
|
||||
local make_class = require 'src.utils.classes'
|
||||
local GameState = require 'src.gstates.gstate'
|
||||
local Fader = require 'src.utils.fader'
|
||||
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
-- Class definitions
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
local Intro = make_class(GameState)
|
||||
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
-- Class methods
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
function Intro:_init(name, index)
|
||||
GameState._init(self, name, index)
|
||||
self.skip = false
|
||||
self.fade = Fader()
|
||||
self.stage = 0
|
||||
self.timer = 0
|
||||
end
|
||||
|
||||
|
||||
function Intro:load()
|
||||
self.splash = love.graphics.newImage('imgs/splash.png')
|
||||
self.author = love.graphics.newImage('imgs/wally.png')
|
||||
self.title = love.graphics.newImage('imgs/title.png')
|
||||
self.splash_snd = love.audio.newSource('snd/jachiev.wav')
|
||||
self.author_snd = love.audio.newSource('snd/alang.wav')
|
||||
self.title_snd = love.audio.newSource('snd/ablhole.wav')
|
||||
self.valid = true
|
||||
|
||||
self.splash_snd:play()
|
||||
end
|
||||
|
||||
|
||||
function Intro:update(dt)
|
||||
local total_time
|
||||
|
||||
if self.stage == 0 then
|
||||
total_time = 4.5
|
||||
elseif self.stage == 1 then
|
||||
total_time = 3.0
|
||||
else
|
||||
total_time = 8.0
|
||||
end
|
||||
|
||||
if self.fade.done then
|
||||
self.timer = self.timer + dt
|
||||
end
|
||||
|
||||
if self.timer >= total_time then
|
||||
self.fade:fade_out(
|
||||
function ()
|
||||
self.stage = self.stage + 1
|
||||
|
||||
if self.stage == 1 then
|
||||
self.author_snd:play()
|
||||
elseif self.stage == 2 then
|
||||
self.title_snd:play()
|
||||
end
|
||||
|
||||
self.fade:fade_in()
|
||||
end
|
||||
)
|
||||
self.timer = 0.0
|
||||
end
|
||||
|
||||
self.fade:update(dt)
|
||||
|
||||
if not self.skip and self.stage < 3 then return self.index else return 2 end
|
||||
end
|
||||
|
||||
|
||||
function Intro:draw()
|
||||
if self.valid then
|
||||
if self.stage == 0 then love.graphics.draw(self.splash, 0, 0)
|
||||
elseif self.stage == 1 then love.graphics.draw(self.author, 0, 0)
|
||||
elseif self.stage == 2 then love.graphics.draw(self.title, 0, 0) end
|
||||
end
|
||||
|
||||
self.fade:draw()
|
||||
end
|
||||
|
||||
|
||||
function Intro:unload()
|
||||
self.splash = nil
|
||||
self.author = nil
|
||||
self.title = nil
|
||||
self.splash_snd = nil
|
||||
self.author_snd = nil
|
||||
self.title_snd = nil
|
||||
self.valid = false
|
||||
end
|
||||
|
||||
|
||||
function Intro:keypressed(_)
|
||||
self.skip = true
|
||||
end
|
||||
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
-- Module return
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
return Intro
|
||||
Reference in New Issue
Block a user