refactor
This commit is contained in:
parent
2e9b930783
commit
10457b037d
1 changed files with 20 additions and 20 deletions
|
|
@ -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)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue