if(movingDown && !movementDone ){
successiveRight = false;
successiveUp = false;
successiveLeft = false;
translate_y += movementSpeed;
player.setY((float) (player.getY() + (movementSpeed)));
movementCounter += movementSpeed;
if(movementCounter < 4){
frame = 2;
} else if( movementCounter > 4 && movementCounter < 16 && !successiveDown){
frame = 3;
} else if (movementCounter > 4 && movementCounter < 16 && successiveDown){
frame = 1;
} else if(movementCounter >= 16){
movementDone= true;
movingDown = false;
movementCounter = 0;
frame = 2;
player.setGrid_Y(grid_y + 1);
if (successiveDown){
successiveDown = false;
} else if (!successiveDown){
successiveDown = true;
}
}
}
Its the exact same for the other directions, when you press wasd, the movingDown/ whatever direction it is goes to true, movementDone is set to false when you press wasd, or if you are interacting with something else, it checks which direction is blocked before input is taken, then sets rightIsBlocked/ whatever direction, and makes it so it changes the frame so theyre facing the right way, but doesnt set the movingDown or movementDone from the corresponding key