From 541c692f8203afaeae0bdd424a22dd21a55e5235 Mon Sep 17 00:00:00 2001 From: Neckrat Date: Fri, 15 Aug 2025 18:54:54 +0300 Subject: [PATCH] smol animation refactor & initial side draw --- lib/character/animation.lua | 6 ++++++ lib/character/graphics.lua | 2 +- lib/selector.lua | 5 +++++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/lib/character/animation.lua b/lib/character/animation.lua index 1d3d766..53025b2 100644 --- a/lib/character/animation.lua +++ b/lib/character/animation.lua @@ -3,8 +3,13 @@ local anim8 = require "lib.utils.anim8" --- Скорость между кадрами в анимации local ANIMATION_SPEED = 0.1 +LEFT = -1 +RIGHT = 1 + --- @class Animation --- @field animationTable table +--- @field state "idle"|"run"|"hurt"|"attack" +--- @field side 1|-1 local animation = {} local function new(id, spriteDir) @@ -21,6 +26,7 @@ local function new(id, spriteDir) end anim.state = "idle" + anim.side = RIGHT anim.animationTable.idle = anim8.newAnimation(animationGrid["idle"], ANIMATION_SPEED) anim.animationTable.run = anim8.newAnimation(animationGrid["run"], ANIMATION_SPEED) diff --git a/lib/character/graphics.lua b/lib/character/graphics.lua index 34d3a0a..e644247 100644 --- a/lib/character/graphics.lua +++ b/lib/character/graphics.lua @@ -27,7 +27,7 @@ function graphics:draw() self.animation.animationTable[state]:draw(Tree.assets.files.sprites.character[state], position.x + 0.5, - position.y + 0.5, nil, 1 / ppm, 1 / ppm, 38, 47) + position.y + 0.5, nil, 1 / ppm * self.animation.side, 1 / ppm, 38, 47) love.graphics.setColor(1, 1, 1) end diff --git a/lib/selector.lua b/lib/selector.lua index 8784b25..c9efff8 100644 --- a/lib/selector.lua +++ b/lib/selector.lua @@ -30,6 +30,11 @@ function selector:update(dt) if not characterId and self.id then -- временная обработка события "побежать к точке" local char = Tree.level.characters[self.id] local charPos = char.logic.mapLogic.position + if mousePosition.x < charPos.x then + char.graphics.animation.side = LEFT + elseif mousePosition.x > charPos.x then + char.graphics.animation.side = RIGHT + end local path = (require "lib.pathfinder")(charPos, mousePosition) path:pop_front() print("Following path: ")