From 7fb83578b99aa224f7545f4118a46e84b58a9295 Mon Sep 17 00:00:00 2001 From: iamcheeseman <[hidden email]> Date: Mon, 12 Jan 2026 20:51:28 -0500 Subject: NEW ASSET SYSTEM WOOOOOOOOHOOOOOOOOOOOOOOOOOOOOOOOOO --- src/player.odin | 50 ++++++++++++++++++++------------------------------ 1 file changed, 20 insertions(+), 30 deletions(-) (limited to 'src/player.odin') 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.. 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) } -- cgit v1.3-2-g0d8e