diff options
| author | ne_mene <[email protected]> | 2026-03-13 17:54:17 +0100 |
|---|---|---|
| committer | ne_mene <[email protected]> | 2026-03-13 17:54:17 +0100 |
| commit | b47490aea2f63d881a2cc69a326b03abae1a46c0 (patch) | |
| tree | 2f25d7d56fb495bdbc5a2f24fc7776c9f7e87bdd /src/sprite.lua | |
| parent | bc52ad3e36ecb0918eca17ea68a0dc54852a3392 (diff) | |
| parent | 94141331ac0365c8eaa823d0ed1e8eb928f09dc6 (diff) | |
stupid merge that i hate
Diffstat (limited to 'src/sprite.lua')
| -rw-r--r-- | src/sprite.lua | 32 |
1 files changed, 28 insertions, 4 deletions
diff --git a/src/sprite.lua b/src/sprite.lua index b7a7541..79a38bf 100644 --- a/src/sprite.lua +++ b/src/sprite.lua @@ -1,9 +1,11 @@ Sprite = {} Sprite.__index = Sprite -function Sprite.new(tex_name) +function Sprite.new(tex_name, opts) local self = setmetatable({}, Sprite) + opts = opts or {} + self.tex = get_tex(tex_name) self.anim = get_anim(tex_name) @@ -16,11 +18,25 @@ function Sprite.new(tex_name) self.width = width / self.anim.frame_count self.height = height + local offsetx = opts.offsetx or 0 + local offsety = opts.offsety or 0 + + if offsetx < 1 and offsetx > -1 then + self.offsetx = self.width * offsetx + else + self.offsetx = offsetx + end + if offsety < 1 and offsety > -1 then + self.offsety = self.height * offsety + else + self.offsety = offsety + end + return self end -register_comp("Sprite", function(ent, tex_name) - ent.sprite = Sprite.new(tex_name) +register_comp("Sprite", function(ent, tex_name, opts) + ent.sprite = Sprite.new(tex_name, opts) end) function sprite_anim_sys(ent, dt) @@ -49,5 +65,13 @@ function sprite_draw_sys(ent) sprite.width, sprite.height, sprite.tex:getDimensions() ) - lg.draw(sprite.tex, q, ent.x or 0, ent.y or 0) + lg.setColor(1, 1, 1) + lg.draw( + sprite.tex, q, + ent.x or 0, ent.y or 0, + ent.rotation or 0, + ent.scalex or ent.scale or 1, ent.scaley or ent.scale or 1, + sprite.offsetx, sprite.offsety, + ent.shearx or 0, ent.sheary or 0 + ) end |
