aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorXander Swan <[hidden email]>2026-01-05 21:09:58 -0500
committerXander Swan <[hidden email]>2026-01-05 21:09:58 -0500
commitf7a888849d8ed51bac21e41a9366e8e052aba3e5 (patch)
tree00e04b16c41155b1f7a260e051a472728feb33c1 /src
parent7113c3bedbe48341507444bd28f1e832101eb2a0 (diff)
Improve jump animations hopefully ???
Diffstat (limited to 'src')
-rw-r--r--src/draw/sprite.odin6
-rw-r--r--src/player.odin10
2 files changed, 15 insertions, 1 deletions
diff --git a/src/draw/sprite.odin b/src/draw/sprite.odin
index aec6c61..ebe2e08 100644
--- a/src/draw/sprite.odin
+++ b/src/draw/sprite.odin
@@ -18,6 +18,8 @@ Sprite :: struct {
offset: Vec2,
rotation: f32,
scale: Vec2,
+
+ just_finished_loop: bool,
}
init_sprite :: proc(
@@ -56,6 +58,8 @@ set_sprite_active_tag :: proc(sprite: ^Sprite, tag_name: string) {
}
update_sprite :: proc(sprite: ^Sprite, dt: f32) {
+ sprite.just_finished_loop = false
+
sprite.frame_time += dt
tag := sprite.anim.frame_tags[sprite.active_anim]
@@ -69,9 +73,11 @@ update_sprite :: proc(sprite: ^Sprite, dt: f32) {
if sprite.current_frame < tag.from {
sprite.current_frame = tag.to
+ sprite.just_finished_loop = true
}
if sprite.current_frame > tag.to {
sprite.current_frame = tag.from
+ sprite.just_finished_loop = true
}
}
diff --git a/src/player.odin b/src/player.odin
index 149e1ce..de5a66b 100644
--- a/src/player.odin
+++ b/src/player.odin
@@ -41,7 +41,6 @@ player: struct {
state: Player_State,
outside_room: bool,
-
has_double_jumped: bool,
}
@@ -114,6 +113,15 @@ default_state :: proc(dt: f32) {
if .DOWN in body.collisions {
player.coyote_time = PLAYER_COYOTE_TIME
player.has_double_jumped = false
+ } else {
+ switch body.vel.y {
+ case -math.INF_F32..<-50:
+ draw.set_sprite_active_tag(&player.sprite, "jump_up")
+ case 50..<math.INF_F32:
+ draw.set_sprite_active_tag(&player.sprite, "jump_down")
+ case:
+ draw.set_sprite_active_tag(&player.sprite, "jump_trans")
+ }
}
if player.jump_buffer > 0 {