diff options
| author | Eltrac <hi@guhub.cn> | 2025-02-27 15:03:31 +0800 |
|---|---|---|
| committer | Eltrac <hi@guhub.cn> | 2025-02-27 15:03:31 +0800 |
| commit | 9800e47436233ee68db23b9a2c40aebaca2705d2 (patch) | |
| tree | 7cd598e7b47470e69bd0cd20336426f250b0b75e /objects/Player.lua | |
| parent | c5e55465634c8d5cff6cd5ac705b4b833d928486 (diff) | |
refactor: make player an object
in order to separate player-related game logic and player state management
Diffstat (limited to 'objects/Player.lua')
| -rw-r--r-- | objects/Player.lua | 25 |
1 files changed, 25 insertions, 0 deletions
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 |
