From 9800e47436233ee68db23b9a2c40aebaca2705d2 Mon Sep 17 00:00:00 2001 From: Eltrac Date: Thu, 27 Feb 2025 15:03:31 +0800 Subject: refactor: make player an object in order to separate player-related game logic and player state management --- objects/Player.lua | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 objects/Player.lua (limited to 'objects/Player.lua') diff --git a/objects/Player.lua b/objects/Player.lua new file mode 100644 index 0000000..a8a7d7b --- /dev/null +++ b/objects/Player.lua @@ -0,0 +1,25 @@ +Player = {} +Player.__index = Player + +function Player.new() + local player = setmetatable({ + x = love.graphics.getWidth() / 2, + y = love.graphics.getHeight() / 2, + body = Body:new("circle", 20), + speed = config.defaultPlayerSpeed, + shieldedTill = 0, + hearts = { "redheart", "redheart", "redheart", "shinyheart", "shinyheart" }, + facing = Direction.DOWN, + moving = false, + }, Player) + + return player +end + +function Player:isShielded() + return self.shieldedTill >= G.time +end + +function Player:isAlive() + return #self.hearts ~= 0 +end -- cgit v1.2.3