Compare commits

...

3 commits

Author SHA1 Message Date
3b83851fb9 destroy rather than kill game objects 2025-11-12 01:02:57 -03:00
8a8e5c43ea revert slow function to global 2025-11-12 01:01:39 -03:00
a3bd5c9817 press action to restart 2025-11-12 00:54:40 -03:00
5 changed files with 17 additions and 17 deletions

View file

@ -33,6 +33,10 @@ GameObject = require 'obj/GameObject'
function love.load()
-- slowmo var
slow_amnt = 1
-- global timer
timer = Timer()
-- table of color palette
COLORS = {
default = {1,1,1,1},
@ -116,6 +120,7 @@ function love.update(dt)
for k, v in pairs(counts) do print(k, v) end
print("-------------------------------------")
end
timer:update(dt*slow_amnt)
camera:update(dt*slow_amnt)
end
@ -168,10 +173,17 @@ function gotoRoom(room_type, ...)
error("room '"..room_type.."' is not callable (got "..type(Class)..", does room return itself?)")
end
if current_room and current_room.destroy then current_room:destroy() end
if slow_amnt ~= 1 then slow_amnt = 1 end
current_room = _G[room_type](...)
end
---Slows down gameplay
---@param amount number percentage to which game will slow down
---@param duration number duration in seconds of slow down
function slow(amount, duration)
slow_amnt = amount
timer:tween(duration, _G, {slow_amnt = 1}, 'in-out-cubic')
end
---Generates and returns random UUID string
---@return string
function UUID()

View file

@ -11,7 +11,6 @@ function Area:new(room)
self.room = room
self.game_objects = {}
self.world = nil
self.timer = Timer()
end
---Updates area
@ -26,7 +25,6 @@ function Area:update(dt)
table.remove(self.game_objects, i)
end
end
self.timer:update(dt)
end
---Draws area
@ -42,7 +40,8 @@ function Area:destroy()
end
for i = #self.game_objects, 1, -1 do
local game_object = self.game_objects[i]
game_object:kill()
---@diagnostic disable-next-line: invisible
game_object:destroy()
table.remove(self.game_objects, i)
end
self.game_objects = {}
@ -68,12 +67,4 @@ function Area:addCollisionManager(cell_size)
self.world = HC(cell_size or 100)
end
---Slows down gameplay
---@param amount number percentage to which game will slow down
---@param duration number duration in seconds of slow down
function Area:slow(amount, duration)
slow_amnt = amount
self.timer:tween(duration, _G, {slow_amnt = 1}, 'in-out-cubic')
end
return Area

View file

@ -52,10 +52,6 @@ end
---Destroys room
function Room:destroy()
if self.timer then
self.timer:clear() -- cancel all tweens/after/every
self.timer = nil
end
self.area:destroy()
self.area = nil
end

View file

@ -87,7 +87,7 @@ function Player:kill()
for i=1, random(8,12) do
self.area:addGameObject('ExplodeParticle', self.x, self.y)
end
self.area:slow(.15, 1)
slow(.15, 1)
camera:shake(6, 60, .4)
end

View file

@ -9,6 +9,7 @@ end
function Stage:update(dt)
Stage.super.update(self, dt)
if input:pressed('action') then gotoRoom('Stage') end
end
function Stage:canvasDraw()