From f7a888849d8ed51bac21e41a9366e8e052aba3e5 Mon Sep 17 00:00:00 2001 From: Xander Swan <[hidden email]> Date: Mon, 5 Jan 2026 21:09:58 -0500 Subject: Improve jump animations hopefully ??? --- src/draw/sprite.odin | 6 ++++++ src/player.odin | 10 +++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) (limited to 'src') 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.. 0 { -- cgit v1.3-2-g0d8e