This commit is contained in:
Stefan Stefanov 2026-08-08 17:50:11 +03:00
parent 2e9b930783
commit 10457b037d

View file

@ -14,45 +14,45 @@ Animation :: struct {
offset: rl.Vector2, offset: rl.Vector2,
} }
update_animation :: proc(a: ^Animation) { update_animation :: proc(animation: ^Animation) {
a.frame_timer += rl.GetFrameTime() animation.frame_timer += rl.GetFrameTime()
if a.frame_timer > a.frame_length && !a.done { if animation.frame_timer > animation.frame_length && !animation.done {
a.current_frame += 1 animation.current_frame += 1
a.frame_timer = 0 animation.frame_timer = 0
if a.current_frame == a.num_frames { if animation.current_frame == animation.num_frames {
if a.loop { if animation.loop {
a.current_frame = 0 animation.current_frame = 0
} else { } else {
a.current_frame += -1 animation.current_frame += -1
a.done = true animation.done = true
} }
} }
} }
} }
draw_animation :: proc(a: Animation, pos: rl.Vector2) { draw_animation :: proc(animation: Animation, position: rl.Vector2) {
width := f32(a.texture.width) width := f32(animation.texture.width)
height := f32(a.texture.height) height := f32(animation.texture.height)
source := rl.Rectangle { source := rl.Rectangle {
x = f32(a.current_frame) * width / f32(a.num_frames), x = f32(animation.current_frame) * width / f32(animation.num_frames),
y = 0, y = 0,
width = width / f32(a.num_frames), width = width / f32(animation.num_frames),
height = height, height = height,
} }
if a.flip { if animation.flip {
source.width = -source.width source.width = -source.width
} }
dest := rl.Rectangle { dest := rl.Rectangle {
x = pos.x + a.offset.x, x = position.x + animation.offset.x,
y = pos.y + a.offset.y, y = position.y + animation.offset.y,
width = width / f32(a.num_frames), width = width / f32(animation.num_frames),
height = height, height = height,
} }
rl.DrawTexturePro(a.texture, source, dest, {dest.width / 2, dest.height}, 0, rl.WHITE) rl.DrawTexturePro(animation.texture, source, dest, {dest.width / 2, dest.height}, 0, rl.WHITE)
} }