diff options
| author | iamcheeseman <[hidden email]> | 2026-01-12 20:51:28 -0500 |
|---|---|---|
| committer | iamcheeseman <[hidden email]> | 2026-01-12 20:51:28 -0500 |
| commit | 7fb83578b99aa224f7545f4118a46e84b58a9295 (patch) | |
| tree | 515e294ac7de167c4501cc0a8d375b13213faf36 /src/player.odin | |
| parent | 2b3a3ea9f4bc902b1b357fd149952d4570b25bf3 (diff) | |
NEW ASSET SYSTEM WOOOOOOOOHOOOOOOOOOOOOOOOOOOOOOOOOO
Diffstat (limited to 'src/player.odin')
| -rw-r--r-- | src/player.odin | 50 |
1 files changed, 20 insertions, 30 deletions
diff --git a/src/player.odin b/src/player.odin index de5a66b..e7fd214 100644 --- a/src/player.odin +++ b/src/player.odin @@ -5,9 +5,7 @@ import "core:math" import rl "vendor:raylib" -import "draw" import "phys" -import "tiled" PLAYER_SPEED :: 100 PLAYER_ACCEL :: 10 @@ -29,8 +27,7 @@ Player_State :: enum { // there will only ever be one player, so just make it a global :) player: struct { body_handle: phys.Body_Handle, - anim: draw.Animation, - sprite: draw.Sprite, + sprite: Sprite, jump_buffer: f32, coyote_time: f32, @@ -45,13 +42,6 @@ player: struct { } init_player :: proc() { - anim_ok := draw.init_anim_data(&player.anim, "res/player.json") - if !anim_ok { - log.warn("could not load animation") - rl.CloseWindow() - return - } - handle, body := phys.make_body( phys.Rect{{-4, 17}, {8, 16}}, ) @@ -59,7 +49,7 @@ init_player :: proc() { phys.set_body_position(handle, Vec2{50, 100}) - draw.init_sprite(&player.sprite, player.anim.image_path, player.anim) + init_sprite(&player.sprite, .PLAYER) player.sprite.offset = Vec2{ math.floor(f32(player.sprite.width / 2)), @@ -70,8 +60,7 @@ init_player :: proc() { delete_player :: proc() { phys.remove_body(player.body_handle) - draw.destroy_sprite(player.sprite) - draw.delete_anim_data(player.anim) + destroy_sprite(player.sprite) } @(private="file") @@ -93,10 +82,10 @@ default_state :: proc(dt: f32) { input := get_input_dir() if input != 0 { - draw.set_sprite_active_tag(&player.sprite, "run") + set_sprite_active_tag(&player.sprite, "run") player.sprite.scale.x = math.sign(input) } else { - draw.set_sprite_active_tag(&player.sprite, "idle") + set_sprite_active_tag(&player.sprite, "idle") } if is_keybind_just_down(actions.jump) { @@ -116,11 +105,11 @@ default_state :: proc(dt: f32) { } else { switch body.vel.y { case -math.INF_F32..<-50: - draw.set_sprite_active_tag(&player.sprite, "jump_up") + set_sprite_active_tag(&player.sprite, "jump_up") case 50..<math.INF_F32: - draw.set_sprite_active_tag(&player.sprite, "jump_down") + set_sprite_active_tag(&player.sprite, "jump_down") case: - draw.set_sprite_active_tag(&player.sprite, "jump_trans") + set_sprite_active_tag(&player.sprite, "jump_trans") } } @@ -176,6 +165,7 @@ dash_state :: proc(dt: f32) { } } +@(private="file") exit_dash :: proc() { player.state = .DEFAULT @@ -189,21 +179,21 @@ exit_dash :: proc() { change_rooms :: proc() { body := phys.get_body(player.body_handle) - width := f32(tiled.current_room.room.width) - height := f32(tiled.current_room.room.height) + width := f32(current_room.width) + height := f32(current_room.height) if body.pos.x < 0 || body.pos.x > width \ || body.pos.y < 0 || body.pos.y > height { - prev_room_pos := [2]f32{ - f32(tiled.current_room.room.x), - f32(tiled.current_room.room.y), + prev_room_pos := Vec2{ + f32(current_room.x), + f32(current_room.y), } - changed := tiled.open_new_room_at({i32(body.pos.x), i32(body.pos.y)}) + changed := open_room_at({i32(body.pos.x), i32(body.pos.y)}) if changed { - new_room_pos := [2]f32{ - f32(tiled.current_room.room.x), - f32(tiled.current_room.room.y), + new_room_pos := Vec2{ + f32(current_room.x), + f32(current_room.y), } diff := prev_room_pos - new_room_pos @@ -226,7 +216,7 @@ update_player :: proc(dt: f32) { body := phys.get_body(player.body_handle) player.sprite.pos = body.pos - draw.update_sprite(&player.sprite, dt) + update_sprite(&player.sprite, dt) player.dash_cooldown -= dt player.jump_buffer -= dt @@ -236,5 +226,5 @@ update_player :: proc(dt: f32) { } draw_player :: proc() { - draw.sprite(player.sprite) + draw_sprite(player.sprite) } |
