From 288ab9e9367a70c7e8cd369ff8a59a5dfd1ba18d Mon Sep 17 00:00:00 2001 From: unknown <45179536+r3cp3ct@users.noreply.github.com> Date: Sun, 5 Jun 2022 12:06:21 +0300 Subject: [PATCH] jump fall timers Co-authored-by: r3cp3ct <45179536+r3cp3ct@users.noreply.github.com> Co-authored-by: sigonasr2 --- src/sig/objects/Player.java | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/src/sig/objects/Player.java b/src/sig/objects/Player.java index f1220ea..0e71678 100644 --- a/src/sig/objects/Player.java +++ b/src/sig/objects/Player.java @@ -18,6 +18,7 @@ public class Player extends AnimatedObject{ final double NORMAL_FRICTION = 6400; final boolean LEFT = false; final boolean RIGHT = true; + final int jump_fall_AnimationWaitTime = 200; double y_acceleration = GRAVITY; double y_acceleration_limit = 100; @@ -38,6 +39,7 @@ public class Player extends AnimatedObject{ int maxJumpCount=2; int jumpCount=maxJumpCount; State state = State.IDLE; + State prvState = state; final double viewBoundaryX=RabiClone.BASE_WIDTH/3; final double viewBoundaryY=RabiClone.BASE_HEIGHT/3; @@ -48,6 +50,7 @@ public class Player extends AnimatedObject{ boolean facing_direction = RIGHT; long spacebarPressed = System.currentTimeMillis(); + long jump_fall_StartAnimationTimer = -1; int jumpHoldTime = 150; public Player(Panel panel) { @@ -69,9 +72,18 @@ public class Player extends AnimatedObject{ case ATTACK: break; case FALLING: - setAnimatedSpr(Sprite.ERINA_JUMP_FALL); + if(prvState!=State.FALLING){ + jump_fall_StartAnimationTimer = System.currentTimeMillis(); + setAnimatedSpr(Sprite.ERINA_JUMP_FALL1); + } + if(System.currentTimeMillis()-jump_fall_StartAnimationTimer>jump_fall_AnimationWaitTime){ + setAnimatedSpr(Sprite.ERINA_JUMP_FALL); + jump_fall_StartAnimationTimer=-1; + } break; case IDLE: + jump_fall_StartAnimationTimer=-1; + if(KeyHeld(KeyEvent.VK_A)||KeyHeld(KeyEvent.VK_LEFT)){ setAnimatedSpr(Sprite.ERINA_WALK); } @@ -90,7 +102,13 @@ public class Player extends AnimatedObject{ } break; case JUMP: - setAnimatedSpr(Sprite.ERINA_JUMP_RISE); + if(jump_fall_StartAnimationTimer==-1){ + jump_fall_StartAnimationTimer = System.currentTimeMillis(); + setAnimatedSpr(Sprite.ERINA_JUMP_RISE1); + } + if(System.currentTimeMillis()-jump_fall_StartAnimationTimer>jump_fall_AnimationWaitTime){ + setAnimatedSpr(Sprite.ERINA_JUMP_RISE); + } break; case SLIDE: break; @@ -101,8 +119,9 @@ public class Player extends AnimatedObject{ default: break; } + prvState = state; - if (KeyHeld(KeyEvent.VK_SPACE)||KeyHeld(KeyEvent.VK_W)&&System.currentTimeMillis()-spacebarPressed