cambridge/scene/title.lua

76 lines
1.7 KiB
Lua
Raw Normal View History

2019-05-22 22:57:34 -05:00
local TitleScene = Scene:extend()
local main_menu_screens = {
ModeSelectScene,
InputConfigScene,
GameConfigScene,
ExitScene,
2019-05-22 22:57:34 -05:00
}
local mainmenuidle = {
"Idle",
"On title screen",
"On main menu screen",
"Twiddling their thumbs",
"Admiring the main menu's BG",
"Waiting for spring to come",
"Actually not playing",
"Contemplating collecting stars",
"Preparing to put the block!!",
"Having a nap",
"In menus",
"Bottom text",
}
2020-10-09 17:43:22 -05:00
2019-05-22 22:57:34 -05:00
function TitleScene:new()
self.main_menu_state = 1
DiscordRPC:update({
details = "In menus",
state = mainmenuidle[math.random(#mainmenuidle)],
})
2019-05-22 22:57:34 -05:00
end
function TitleScene:update()
end
function TitleScene:render()
love.graphics.setFont(font_3x5_2)
love.graphics.draw(
backgrounds["title"],
0, 0, 0,
0.5, 0.5
)
love.graphics.setColor(1, 1, 1, 0.5)
love.graphics.rectangle("fill", 20, 278 + 20 * self.main_menu_state, 160, 22)
love.graphics.setColor(1, 1, 1, 1)
for i, screen in pairs(main_menu_screens) do
love.graphics.printf(screen.title, 40, 280 + 20 * i, 120, "left")
end
end
function TitleScene:changeOption(rel)
local len = table.getn(main_menu_screens)
self.main_menu_state = (self.main_menu_state + len + rel - 1) % len + 1
end
function TitleScene:onKeyPress(e)
if e.scancode == "return" and e.isRepeat == false then
2020-10-09 16:50:05 -05:00
playSE("main_decide")
2019-05-22 22:57:34 -05:00
scene = main_menu_screens[self.main_menu_state]()
elseif (e.scancode == config.input["up"] or e.scancode == "up") and e.isRepeat == false then
self:changeOption(-1)
2020-10-09 16:50:05 -05:00
playSE("cursor")
2019-05-22 22:57:34 -05:00
elseif (e.scancode == config.input["down"] or e.scancode == "down") and e.isRepeat == false then
self:changeOption(1)
2020-10-09 16:50:05 -05:00
playSE("cursor")
elseif e.scancode == "escape" and e.isRepeat == false then
love.event.quit()
2019-05-22 22:57:34 -05:00
end
end
return TitleScene