From aa8daedc829654ecec8fd531306e8c99de9b6355 Mon Sep 17 00:00:00 2001 From: Kazhnuz Date: Sat, 16 Mar 2019 15:38:02 +0100 Subject: [PATCH] examples: add a basic menu testing --- examples/init.lua | 1 + examples/test_menus/init.lua | 86 ++++++++++++++++++++++++++++++++++++ examples/test_scene/init.lua | 15 +++++-- 3 files changed, 98 insertions(+), 4 deletions(-) create mode 100644 examples/test_menus/init.lua diff --git a/examples/init.lua b/examples/init.lua index e2a6670..19a25db 100644 --- a/examples/init.lua +++ b/examples/init.lua @@ -1,4 +1,5 @@ return { Test = require "examples.test_scene", Test2 = require "examples.test_scene2", + TestMenu = require "examples.test_menus" } diff --git a/examples/test_menus/init.lua b/examples/test_menus/init.lua new file mode 100644 index 0000000..4093e12 --- /dev/null +++ b/examples/test_menus/init.lua @@ -0,0 +1,86 @@ +-- scenes/test :: a basic test scene + +--[[ + Copyright © 2019 Kazhnuz + + Permission is hereby granted, free of charge, to any person obtaining a copy of + this software and associated documentation files (the "Software"), to deal in + the Software without restriction, including without limitation the rights to + use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + the Software, and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +]] + +local Scene = require "gamecore.modules.scenes" +local TestScene = Scene:extend() + +local MenuType = require "gamecore.modules.menusystem.listbox" +local MenuType2 = require "gamecore.modules.menusystem.flowbox" +local MenuType3 = require "gamecore.modules.menusystem.grid" +local Widget = require "gamecore.modules.menusystem.widgets" + + +function TestScene:new() + TestScene.super.new(self) + + MenuType(self.menusystem, "testMenu1", 32, 32, 100, 24*8, 4) + Widget.Base(self.menusystem.menus["testMenu1"]) + Widget.Base(self.menusystem.menus["testMenu1"]) + Widget.Base(self.menusystem.menus["testMenu1"]) + Widget.Base(self.menusystem.menus["testMenu1"]) + Widget.Base(self.menusystem.menus["testMenu1"]) + Widget.Base(self.menusystem.menus["testMenu1"]) + + MenuType2(self.menusystem, "testMenu2", 164, 32, 24*8, 24*2, 8, 2) + Widget.Base(self.menusystem.menus["testMenu2"]) + Widget.Base(self.menusystem.menus["testMenu2"]) + Widget.Base(self.menusystem.menus["testMenu2"]) + Widget.Base(self.menusystem.menus["testMenu2"]) + Widget.Base(self.menusystem.menus["testMenu2"]) + Widget.Base(self.menusystem.menus["testMenu2"]) + Widget.Base(self.menusystem.menus["testMenu2"]) + Widget.Base(self.menusystem.menus["testMenu2"]) + Widget.Base(self.menusystem.menus["testMenu2"]) + Widget.Base(self.menusystem.menus["testMenu2"]) + Widget.Base(self.menusystem.menus["testMenu2"]) + Widget.Base(self.menusystem.menus["testMenu2"]) + Widget.Base(self.menusystem.menus["testMenu2"]) + Widget.Base(self.menusystem.menus["testMenu2"]) + Widget.Base(self.menusystem.menus["testMenu2"]) + Widget.Base(self.menusystem.menus["testMenu2"]) + Widget.Base(self.menusystem.menus["testMenu2"]) + Widget.Base(self.menusystem.menus["testMenu2"]) + Widget.Base(self.menusystem.menus["testMenu2"]) + Widget.Base(self.menusystem.menus["testMenu2"]) + + MenuType3(self.menusystem, "testMenu3", 164, 32 + 72, 24*8, 24*5, 8, 5) + Widget.Base(self.menusystem.menus["testMenu3"]) + Widget.Base(self.menusystem.menus["testMenu3"]) + Widget.Base(self.menusystem.menus["testMenu3"]) + Widget.Base(self.menusystem.menus["testMenu3"]) + self.menusystem.menus["testMenu3"]:addSlot(1, 0, 0, 4, 3) + self.menusystem.menus["testMenu3"]:addSlot(2, 0, 3, 5, 2) + self.menusystem.menus["testMenu3"]:addSlot(3, 5, 0, 3, 1) + self.menusystem.menus["testMenu3"]:addSlot(4, 5, 1, 3, 4) + +end + +function TestScene:update(dt) +end + +function TestScene:draw() + love.graphics.setColor(0, 0, .4, 1) + love.graphics.rectangle("fill", 0, 0, 424, 240) +end + +return TestScene diff --git a/examples/test_scene/init.lua b/examples/test_scene/init.lua index 40dba35..38d58d3 100644 --- a/examples/test_scene/init.lua +++ b/examples/test_scene/init.lua @@ -35,13 +35,20 @@ function TestScene:update(dt) end function TestScene:mousepressed(x, y) - core.scenemanager:storeCurrentScene("pausedScene") - examples.Test2() + if (x > 424/2) then + core.scenemanager:storeCurrentScene("pausedScene") + examples.Test2() + else + examples.TestMenu() + end end function TestScene:draw() - love.graphics.setColor(0, 0, .4, 1) - love.graphics.rectangle("fill", 0, 0, 424, 240) + love.graphics.setColor(0, 0, .4, 1) + love.graphics.rectangle("fill", 0, 0, 424/2, 240) + love.graphics.setColor(.4, 0, 0, 1) + love.graphics.rectangle("fill", 424/2, 0, 424/2, 240) + love.graphics.setColor(1, 1, 1, 1) love.graphics.print(math.floor(self.i) .. " ; " .. self.mouse.x .. ":" .. self.mouse.y, 16, 16)