scenes/mainmenu: initial version of a simple "main menu"
This commit is contained in:
parent
919c387345
commit
e5a06c347b
|
@ -18,7 +18,7 @@ function love.load() -- On charge la scene de départ (pour l'instant le menu, b
|
||||||
game = Game()
|
game = Game()
|
||||||
game.pigmanager:addPig("cochon")
|
game.pigmanager:addPig("cochon")
|
||||||
|
|
||||||
scenes.WorldMap()
|
scenes.MainMenu()
|
||||||
end
|
end
|
||||||
|
|
||||||
function love.update(dt)
|
function love.update(dt)
|
||||||
|
|
|
@ -43,7 +43,7 @@ function MainMenu:createBackground( filename, emblem_filename )
|
||||||
end
|
end
|
||||||
|
|
||||||
local w, h = Emblem:getDimensions()
|
local w, h = Emblem:getDimensions()
|
||||||
love.graphics.draw(Emblem, screenwidth/2, screenheight/2, 0, 1, 1, w/2, h/2)
|
love.graphics.draw(Emblem, screenwidth*5/16, screenheight*10/16, 0, 1, 1, w/2, h/2)
|
||||||
|
|
||||||
love.graphics.setCanvas( )
|
love.graphics.setCanvas( )
|
||||||
end
|
end
|
||||||
|
@ -56,6 +56,8 @@ function MainMenu:selectMenu(menuID)
|
||||||
error("ERROR, menu " .. menuID .. " doesn't exist in scene menusystem")
|
error("ERROR, menu " .. menuID .. " doesn't exist in scene menusystem")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
self.menusystem.menus["main"].isVisible = true
|
||||||
|
|
||||||
self.menusystem.menus[menuID].isVisible = true
|
self.menusystem.menus[menuID].isVisible = true
|
||||||
self.menusystem.menus[menuID].isActive = true
|
self.menusystem.menus[menuID].isActive = true
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,87 @@
|
||||||
|
local Grid = require "core.modules.menusystem.grid"
|
||||||
|
local MenuObject = Grid:extend()
|
||||||
|
|
||||||
|
local Widget = require "core.modules.menusystem.widgets"
|
||||||
|
local MainWidget = Widget.Base:extend()
|
||||||
|
local MapWidget = MainWidget:extend()
|
||||||
|
local ExitWidget = MainWidget:extend()
|
||||||
|
local OptionsWidget = MainWidget:extend()
|
||||||
|
|
||||||
|
function MenuObject:new(scene)
|
||||||
|
self.scene = scene
|
||||||
|
local screenwidth, screenheight = core.screen:getDimensions()
|
||||||
|
local menuwidth = screenwidth - 32 * 2
|
||||||
|
local menuheight = screenheight - 48 - 16
|
||||||
|
|
||||||
|
local colNumber, lineNumber
|
||||||
|
colNumber = math.floor(menuwidth / 16)
|
||||||
|
lineNumber = math.floor(menuheight / 16)
|
||||||
|
|
||||||
|
menuwidth = colNumber * 16
|
||||||
|
menuheight = lineNumber * 16
|
||||||
|
|
||||||
|
print(colNumber, lineNumber)
|
||||||
|
|
||||||
|
MenuObject.super.new(self, scene.menusystem, "main", 32, 48, menuwidth, menuheight, colNumber, lineNumber)
|
||||||
|
self.isVisible = true
|
||||||
|
self.isActive = true
|
||||||
|
|
||||||
|
MapWidget(self)
|
||||||
|
MainWidget(self, "MANAGE PIGS")
|
||||||
|
MainWidget(self, "BONUS")
|
||||||
|
OptionsWidget(self)
|
||||||
|
ExitWidget(self)
|
||||||
|
self:addSlot(1, 0, 0, 13, 6)
|
||||||
|
self:addSlot(2, 13, 0, 6, 6)
|
||||||
|
self:addSlot(3, 19, 0, 7, 6)
|
||||||
|
self:addSlot(4, 13, 6, 13, 3)
|
||||||
|
self:addSlot(5, 13, 9, 13, 3)
|
||||||
|
end
|
||||||
|
|
||||||
|
function MainWidget:new(menusystem, label)
|
||||||
|
MainWidget.super.new(self, menusystem)
|
||||||
|
self.scene = menusystem.scene
|
||||||
|
self.label = label or ""
|
||||||
|
end
|
||||||
|
|
||||||
|
function MainWidget:redrawCanvas()
|
||||||
|
self.width, self.height = self.menu:getWidgetSize(self.id)
|
||||||
|
self.textbox = game.gui.newTextBox("assets/sprites/gui/textbox/bluebox.png", self.width, self.height)
|
||||||
|
MainWidget.super.redrawCanvas(self)
|
||||||
|
end
|
||||||
|
|
||||||
|
function MainWidget:drawCanvas()
|
||||||
|
love.graphics.draw(self.textbox, 0, 0)
|
||||||
|
if self.height >= 64 then
|
||||||
|
love.graphics.printf(self.label, 0, 8, self.width, "center")
|
||||||
|
else
|
||||||
|
love.graphics.printf(self.label, 64, 16, self.width, "left")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function MapWidget:new(menusystem)
|
||||||
|
MapWidget.super.new(self, menusystem, "WORLD MAP")
|
||||||
|
end
|
||||||
|
|
||||||
|
function MapWidget:action()
|
||||||
|
scenes.WorldMap()
|
||||||
|
end
|
||||||
|
|
||||||
|
function ExitWidget:new(menusystem)
|
||||||
|
MapWidget.super.new(self, menusystem, "EXIT")
|
||||||
|
end
|
||||||
|
|
||||||
|
function ExitWidget:action()
|
||||||
|
love.event.quit()
|
||||||
|
end
|
||||||
|
|
||||||
|
function OptionsWidget:new(menusystem)
|
||||||
|
OptionsWidget.super.new(self, menusystem, "OPTIONS")
|
||||||
|
end
|
||||||
|
|
||||||
|
function OptionsWidget:action()
|
||||||
|
self.scene:selectMenu("mainmenu")
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
return MenuObject
|
|
@ -29,6 +29,7 @@ menu.Levels = MenuObject:extend()
|
||||||
menu.Bonus = MenuObject:extend()
|
menu.Bonus = MenuObject:extend()
|
||||||
menu.Pigs = MenuObject:extend()
|
menu.Pigs = MenuObject:extend()
|
||||||
menu.Options = MenuObject:extend()
|
menu.Options = MenuObject:extend()
|
||||||
|
menu.newMain = require "scenes.debugmenu.mainmenu"
|
||||||
|
|
||||||
local widgets = require "scenes.debugmenu.widgets"
|
local widgets = require "scenes.debugmenu.widgets"
|
||||||
|
|
||||||
|
@ -41,8 +42,6 @@ function menu.Main:new(scene)
|
||||||
widgets.Menu(self,"Options", "mainmenu")
|
widgets.Menu(self,"Options", "mainmenu")
|
||||||
widgets.Menu(self,"Bonus", "mainmenu")
|
widgets.Menu(self,"Bonus", "mainmenu")
|
||||||
widgets.Exit(self)
|
widgets.Exit(self)
|
||||||
self.isVisible = true
|
|
||||||
self.isActive = true
|
|
||||||
self:getFocus()
|
self:getFocus()
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -91,6 +90,7 @@ function menu.Options:new(scene)
|
||||||
end
|
end
|
||||||
|
|
||||||
function menu.Create(scene)
|
function menu.Create(scene)
|
||||||
|
menu.newMain(scene)
|
||||||
menu.Main(scene)
|
menu.Main(scene)
|
||||||
menu.Debug(scene)
|
menu.Debug(scene)
|
||||||
menu.Levels(scene)
|
menu.Levels(scene)
|
||||||
|
|
Loading…
Reference in New Issue