diff options
| author | Xander Swan <no email> | 2025-12-17 18:38:21 -0500 |
|---|---|---|
| committer | Xander Swan <no email> | 2025-12-17 18:38:21 -0500 |
| commit | ce4d64bd41937d7dff18ca607122188dc338d696 (patch) | |
| tree | ad5f7cbdffcc1478883cbca0ea7b8365b2108d0a /src/player.odin | |
| parent | 87a7a010ecbe2cb99fedf44d0cac31e2efae86d5 (diff) | |
switch to raylib, update some structure
Diffstat (limited to 'src/player.odin')
| -rw-r--r-- | src/player.odin | 36 |
1 files changed, 18 insertions, 18 deletions
diff --git a/src/player.odin b/src/player.odin index 1fbbb0a..6c34d14 100644 --- a/src/player.odin +++ b/src/player.odin @@ -1,9 +1,9 @@ package demonchime -import "core:fmt" +import "core:log" import "core:math" -import sapp "shared:sokol/app" +import rl "vendor:raylib" import "draw" import "phys" @@ -25,20 +25,19 @@ Player :: struct { } init_player :: proc(p: ^Player) { - anim_ok := draw.init_anim_data(&p.anim, "res/robot2.json") + anim_ok := draw.init_anim_data(&p.anim, "res/player.json") if !anim_ok { - fmt.println("coult not load animation") - sapp.quit() + log.warn("could not load animation") + rl.CloseWindow() return } handle, body := phys.make_body( - &state.physics_world, - phys.Rect{{-8, -17}, {16, 16}}, + phys.Rect{{8, 17}, {16, 16}}, ) p.body_handle = handle - body.pos = Vec2{50, 50} + body.pos = Vec2{50, 0} draw.init_sprite(&p.sprite, p.anim.image_path, p.anim) @@ -49,33 +48,34 @@ init_player :: proc(p: ^Player) { } deinit_player :: proc(p: ^Player) { - phys.remove_body(&state.physics_world, p.body_handle) + phys.remove_body(p.body_handle) + draw.destroy_sprite(p.sprite) draw.delete_anim_data(p.anim) } update_player :: proc(p: ^Player, dt: f32) { input: f32 - if is_keybind_down(state.input, state.input.move_left) { + if is_keybind_down(actions.move_left) { input -= 1 } - if is_keybind_down(state.input, state.input.move_right) { + if is_keybind_down(actions.move_right) { input += 1 } - if is_keybind_down(state.input, state.input.jump) { + if is_keybind_just_down(actions.jump) { p.jump_buffer = JUMP_BUFFERING } if input != 0 { - draw.set_sprite_active_tag(&p.sprite, "down_run") + draw.set_sprite_active_tag(&p.sprite, "run") p.sprite.scale.x = math.sign(input) } else { - draw.set_sprite_active_tag(&p.sprite, "down_idle") + draw.set_sprite_active_tag(&p.sprite, "idle") } - body := phys.get_body(state.physics_world, p.body_handle) + body := phys.get_body(p.body_handle) if .DOWN in body.collisions { p.coyote_time = COYOTE_TIME @@ -88,7 +88,7 @@ update_player :: proc(p: ^Player, dt: f32) { } if .DOWN not_in body.collisions \ - && !is_keybind_down(state.input, state.input.jump) \ + && !is_keybind_down(actions.jump) \ && body.vel.y < JUMP_RELEASE_CUT { body.vel.y = JUMP_RELEASE_CUT } @@ -100,7 +100,7 @@ update_player :: proc(p: ^Player, dt: f32) { ) body.vel.y = math.min(body.vel.y + GRAVITY * dt, TERMINAL_VELOCITY) - phys.update_body(&state.physics_world, p.body_handle) + phys.update_body(p.body_handle) p.sprite.pos = body.pos draw.update_sprite(&p.sprite, dt) @@ -110,6 +110,6 @@ update_player :: proc(p: ^Player, dt: f32) { } draw_player :: proc(p: Player) { - draw.sprite(&state.renderer, p.sprite) + draw.sprite(p.sprite) } |
