summaryrefslogtreecommitdiffhomepage
path: root/src/player.c
diff options
context:
space:
mode:
authorrealtradam <[email protected]>2023-05-26 17:22:44 -0400
committerrealtradam <[email protected]>2023-05-26 17:22:44 -0400
commit524040a76a673b0fcc7ad49ac009fc4506ef76e1 (patch)
tree615d57809c9dc00195d683c322d93710361d237e /src/player.c
parent16afc70b4e30668ae65b241c8502d9747f2a139e (diff)
downloadTOJam2023-524040a76a673b0fcc7ad49ac009fc4506ef76e1.tar.gz
TOJam2023-524040a76a673b0fcc7ad49ac009fc4506ef76e1.zip
added staggered player movement
Diffstat (limited to 'src/player.c')
-rw-r--r--src/player.c46
1 files changed, 38 insertions, 8 deletions
diff --git a/src/player.c b/src/player.c
index ef9a2a3..01bb98b 100644
--- a/src/player.c
+++ b/src/player.c
@@ -11,6 +11,7 @@ struct player_t
int32_t hp;
float damage_timer;
world_id collision_id;
+ move_state_t move_state;
}
player;
@@ -91,15 +92,44 @@ parse_player_input(void)
units_move_down_input(NULL, &reset_movement);
units_move_left_input(NULL, &reset_movement);
units_move_right_input(NULL, &reset_movement);
- player_position->dx = *(float*)units_move_right_input(NULL, NULL) + *(float*)units_move_left_input(NULL, NULL);
- player_position->dy = *(float*)units_move_down_input(NULL, NULL) + *(float*)units_move_up_input(NULL, NULL);
+
+ // if you arent mid jump, then record attempted movement
+ if(player.move_state != mv_state_jumping)
+ {
+ player_position->dx = *(float*)units_move_right_input(NULL, NULL) + *(float*)units_move_left_input(NULL, NULL);
+ player_position->dy = *(float*)units_move_down_input(NULL, NULL) + *(float*)units_move_up_input(NULL, NULL);
+
+ if(((player_position->dy != 0) || (player_position->dx != 0)) && player.move_state == mv_state_standing)
+ {
+ player.move_state = mv_state_jumping;
+ player_position->dy = 0;
+ player_position->dx = 0;
+ }
+ }
}
void
move_player(void)
{
- player.sprite.iter += 1;
- player.sprite.iter %= player.sprite.config.count;
+ rodeo_log(
+ rodeo_logLevel_info,
+ "%d, %d\n",
+ player.move_state,
+ player.sprite.iter
+ );
+ if(player.move_state != mv_state_standing)
+ {
+ player.sprite.iter += 1;
+ player.sprite.iter %= player.sprite.config.count;
+ if(player.sprite.iter > 19)
+ {
+ player.move_state = mv_state_mid_air;
+ }
+ }
+ if(player.sprite.iter == 60)
+ {
+ player.move_state = mv_state_standing;
+ }
cvec_collision_2d_world_item_value *player_position = rodeo_collision_2d_world_item_get_by_id(player.collision_id);
player_position->x += player_position->dx;
player_position->dx = 0;
@@ -127,21 +157,21 @@ player_shoot(rodeo_collision_2d_world_t *bullet_collision_world)
);
}
}
-
+/*
void player_enemy_resolver(
rodeo_collision_2d_world_item_t *player_collision,
rodeo_collision_2d_world_item_t *enemy_collision
)
{
- if (player.damage_cooldown > 1.0) {
+ if (player.damage_timer > 1.0) {
player.hp -= 10;
- player.damage_cooldown = 0;
+ player.damage_timer = 0;
}
if (player.hp <= 0) {
//game over
}
}
-
+*/
void
detect_player_enemy_collisions(void)
{