Переглянути джерело

Added basic pause button and WAAAY better buttons in general because I am cool

tags/v0.0.6_dev
Madiwka 2 роки тому
джерело
коміт
82b9ef8505
2 змінених файлів з 42 додано та 6 видалено
  1. +34
    -4
      main.lua
  2. +8
    -2
      src/class/Button.lua

+ 34
- 4
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

+ 8
- 2
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

Завантаження…
Відмінити
Зберегти