aboutsummaryrefslogtreecommitdiff
path: root/src/player.odin
diff options
context:
space:
mode:
authorXander Swan <no email>2025-12-17 18:38:21 -0500
committerXander Swan <no email>2025-12-17 18:38:21 -0500
commitce4d64bd41937d7dff18ca607122188dc338d696 (patch)
treead5f7cbdffcc1478883cbca0ea7b8365b2108d0a /src/player.odin
parent87a7a010ecbe2cb99fedf44d0cac31e2efae86d5 (diff)
switch to raylib, update some structure
Diffstat (limited to 'src/player.odin')
-rw-r--r--src/player.odin36
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)
}