AtkinsSJ

BeeBeard player movement

Jul 1st, 2013
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.18 KB | None | 0 0
  1. public void act(float delta) {
  2.         super.act(delta);
  3.        
  4.         Rectangle playerRect = new Rectangle(getX(), getY(), getWidth(), getHeight());
  5.        
  6.         boolean grounded = false;
  7.         List<Rectangle> solids = ((PlayScene)scene).getSolids();
  8.        
  9.         for (Rectangle rect: solids) {
  10.            
  11.             // Is rect just underneath the player?
  12.             if (rect.overlaps(playerRect) && rect.y < playerRect.y) {
  13.                 grounded = true;
  14.                 break;
  15.             }
  16.         }
  17.        
  18.         if (grounded) {
  19.             yVel = 0;
  20.         } else {
  21.             yVel -= fallAcceleration * delta;
  22.             if (yVel < -maxFallSpeed) {
  23.                 yVel = -maxFallSpeed;
  24.             }
  25.         }
  26.        
  27.         // Check inputs
  28.         boolean left = Gdx.input.isKeyPressed(Keys.LEFT),
  29.                 right = Gdx.input.isKeyPressed(Keys.RIGHT),
  30.                 jump = Gdx.input.isKeyPressed(Keys.UP);
  31.        
  32.         if ((left && right) || !(left || right)) {
  33.             // Still
  34.             animatedSprite.play("idle");
  35.         } else if (left) {
  36.             animatedSprite.play("run");
  37.             animatedSprite.flip(true, false);
  38.            
  39.             setX(getX() - maxSpeed*delta);
  40.         } else if (right) {
  41.             animatedSprite.play("run");
  42.             animatedSprite.flip(false, false);
  43.  
  44.             setX(getX() + maxSpeed*delta);
  45.         }
  46.        
  47.         if (grounded && jump) {
  48.             yVel = jumpSpeed;
  49.         }
  50.        
  51.         setY(getY() + yVel*delta);
  52.     }
Advertisement
Add Comment
Please, Sign In to add comment