From 82b9ef8505db6abe265311308e9a82918082a44f Mon Sep 17 00:00:00 2001 From: Madiwka Date: Fri, 28 Jan 2022 21:06:23 +0600 Subject: [PATCH] Added basic pause button and WAAAY better buttons in general because I am cool --- main.lua | 38 ++++++++++++++++++++++++++++++++++---- src/class/Button.lua | 10 ++++++++-- 2 files changed, 42 insertions(+), 6 deletions(-) diff --git a/main.lua b/main.lua index 8693359..1efe479 100755 --- a/main.lua +++ b/main.lua @@ -29,12 +29,21 @@ function love.load() -- Buttons: button = { - tutorial = Button(width - 70, 20, 50, 30, "help", {255, 255, 255}, {40, 40, 40}, false) + tutorial = Button(width - 70, 20, 50, 30, "help", {255, 255, 255}, {40, 40, 40}, false), + pause = Button(width - 70, 60, 80, 30, "pause", {255, 255, 255}, {40, 40, 40}, false) } + pausebutton = { + + } + table.insert(pausebutton, Button(width/2-250, height/2-25, 500, 50, "Continue", {255, 255, 255}, {40, 40, 40}, false, function() button.pause.isActive = false end)) + table.insert(pausebutton, Button(width/2-250, height/2+35, 500, 50, "Main Menu", {255, 255, 255}, {40, 40, 40}, false, function() restartGame() GAMESTATE = gamestate.menu end)) + table.insert(pausebutton, Button(width/2-250, height/2+95, 500, 50, "Quit", {255, 255, 255}, {40, 40, 40}, false, function() love.event.quit() end)) + -- Textboxes: textbox = { - tutorial = Textbox(40, 40, width-80, height-80, getText(text.tutorial), "center", {255, 255, 255}, {0, 0, 0}) + tutorial = Textbox(40, 40, width-80, height-80, calc.getText(text.tutorial), "center", {255, 255, 255}, {0, 0, 0}) + } @@ -220,6 +229,13 @@ function love.update(dt) elseif GAMESTATE == gamestate.menu then elseif GAMESTATE == gamestate.game then + button.pause:update() + if (button.pause.isActive) then + for i, butt in ipairs(pausebutton) do + butt:update() + end + return + end -- Game Objects: for i=1, timewarpControls() do -- Physics go in here: @@ -231,6 +247,7 @@ function love.update(dt) -- Gui: gui:update(dt) button.tutorial:update() + -- Camera: cam:lookAt(player.x, player.y) @@ -257,11 +274,24 @@ function love.draw() -- Gui: player:drawPositionIndicator() gui:draw() - + button.tutorial:draw() if button.tutorial.isActive then textbox.tutorial:draw() + else + button.pause:draw() + if (button.pause.isActive) then + for i, butt in ipairs(pausebutton) do + butt:draw() + end + end end - button.tutorial:draw() end menubuttonDraw() +end + + +function restartGame() + button.pause.isActive = false + button.tutorial.isActive = false + player:reset() end \ No newline at end of file diff --git a/src/class/Button.lua b/src/class/Button.lua index 60c9bbe..35a9b6b 100755 --- a/src/class/Button.lua +++ b/src/class/Button.lua @@ -1,6 +1,6 @@ Button = Class {} -function Button:init(tempX, tempY, tempW, tempH, tempText, tempTC, tempBC, tempActive) +function Button:init(tempX, tempY, tempW, tempH, tempText, tempTC, tempBC, tempActive, tempFn) -- Position and Dimensions: self.x = tempX self.y = tempY @@ -20,6 +20,9 @@ function Button:init(tempX, tempY, tempW, tempH, tempText, tempTC, tempBC, tempA -- Click Cooldown: self.cooldownLimit = 30 self.cooldown = 0 + if tempFn~=nil then + self.fn = tempFn + end end @@ -49,6 +52,9 @@ function Button:update(dt) if self:click() and self.cooldown <= 0 then self.isActive = not self.isActive self.cooldown = self.cooldownLimit + if self.fn ~= nil then + self.fn() + end end self.cooldown = self.cooldown - 1 end @@ -76,5 +82,5 @@ function Button:draw() -- Draw Text love.graphics.setFont(font.default) love.graphics.setColor(tx[1], tx[2], tx[3]) - love.graphics.printf(self.text, x, y, w, "center") + love.graphics.printf(self.text, x, y+h/8, w, "center") end \ No newline at end of file