UI button and main menu beginning

This commit is contained in:
Alexey 2025-07-04 13:39:17 +03:00
commit 319a642688
4 changed files with 128 additions and 22 deletions

View file

@ -3,8 +3,11 @@ require 'point'
require 'line'
require 'mouse'
require 'levelhandler'
require 'button'
Input = require 'input'
InMenu = true
local function updateCellSize()
local width, height = love.graphics.getDimensions()
local gridX, gridY = GameGrid.size:coords();
@ -14,8 +17,16 @@ local function updateCellSize()
end
function love.load()
GameGrid = LevelHandler:first()
updateCellSize()
love.window.setMode( 800, 480 )
local menuButtonReleased = function()
InMenu = false
GameGrid = LevelHandler:first()
updateCellSize()
end
MenuStartButton = Button:new( Point:new( 240, 120 ), Point:new( 320, 80 ), nil, nil, menuButtonReleased )
love.graphics.setLineStyle( Config.lineStyle )
end
@ -23,33 +34,40 @@ end
function love.update( dt )
Mouse:update()
Input:update()
if InMenu then
MenuStartButton:update( dt, Point:new( Mouse.x, Mouse.y ), Mouse.pressed )
else
if Input:actionReleased( 'exit' ) then
love.event.quit()
end
if Input:actionReleased( 'exit' ) then
love.event.quit()
end
if Input:actionReleased( 'nextlevel' ) then
if GameGrid:isCompleted() then
GameGrid = LevelHandler:next()
updateCellSize()
if Input:actionReleased( 'nextlevel' ) then
if GameGrid:isCompleted() then
GameGrid = LevelHandler:next()
updateCellSize()
end
end
end
end
function love.draw()
GameGrid:draw()
if InMenu then
MenuStartButton:draw()
else
GameGrid:draw()
local text = string.format( "%d:%d global\n%d:%d local\n%d:%d from start", Mouse.x, Mouse.y, Mouse.point.x, Mouse.point.y, Mouse.startX - Mouse.x, Mouse.startY - Mouse.y )
love.graphics.print( text, 64, 256 )
local text = string.format( "%d:%d global\n%d:%d local\n%d:%d from start", Mouse.x, Mouse.y, Mouse.point.x, Mouse.point.y, Mouse.startX - Mouse.x, Mouse.startY - Mouse.y )
love.graphics.print( text, 64, 256 )
if Mouse.dragged then
love.graphics.print( "drag", 64, 300 )
end
if Mouse.lastLine ~= nil then
love.graphics.print( tostring( Mouse.lastLine ), 128, 300 )
end
if Mouse.dragged then
love.graphics.print( "drag", 64, 300 )
end
if Mouse.lastLine ~= nil then
love.graphics.print( tostring( Mouse.lastLine ), 128, 300 )
end
if GameGrid:isCompleted() then
love.graphics.print( "Grid completed. Press space to proceed to next", 64, 320 )
if GameGrid:isCompleted() then
love.graphics.print( "Grid completed. Press space to proceed to next", 64, 320 )
end
end
end