From 7eca2f3c16a9f47ec591ab836690536fcb849c4e Mon Sep 17 00:00:00 2001 From: En Yi Date: Thu, 20 Feb 2020 22:31:13 +0800 Subject: [PATCH] Adjust dashing mechanics --- main.c | 2 +- obj/player.c | 12 ++++++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/main.c b/main.c index aa4c563..39d336a 100644 --- a/main.c +++ b/main.c @@ -80,8 +80,8 @@ int main() BeginDrawing(); ClearBackground(RAYWHITE); - draw_squishy(&sqr); draw_afterimages(&player); + draw_squishy(&sqr); BeginMode2D(camera); current = kinematic_HEAD; diff --git a/obj/player.c b/obj/player.c index 7ffb6d1..921d14d 100644 --- a/obj/player.c +++ b/obj/player.c @@ -163,6 +163,7 @@ void player_input_check(struct player_obj *player){ } break; case LANDING: + dash_count = 1; set_squish_target_offset(player->image, 1, 0); if(frame_counterstate = state_buffer; @@ -192,7 +192,13 @@ void player_input_check(struct player_obj *player){ player->kinematic.velocity.y = dash_vec.y; ++frame_counter; if (frame_counter > dash_time_frames){ - player->state = JUMPING; + dash_count = 1; + if (!place_meeting(&player->kinematic, (Vector2){0,1})){ + player->state = JUMPING; + } + else{ + player->state = RUNNING; + } //allow_friction = true; } break; @@ -258,6 +264,8 @@ void player_input_check(struct player_obj *player){ //if (player->state != DASHING && !place_meeting(&player->kinematic, (Vector2){0,1}) ){ if (!place_meeting(&player->kinematic, (Vector2){0,1}) ){ accel.y = GRAV; + if(player->kinematic.velocity.y > 0) + player->state = FALLING; } move(&player->kinematic, accel);