wouldnt it be easier to rewrite onGround?


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | import greenfoot.* public class Jumper extends Actor { private int ySpeed; public Jumper() { } public void act() { int groundLevel = getWorld().getWidth() - getImage().getHeight()/ 2 ; boolean onGround = (getY() == groundLevel); if (!onGround) // in middle of jump { ySpeed++; // adds gravity effect setLocation(getX(), getY()+ySpeed); // fall (rising slower or falling faster) if (getY()>=groundLevel) // has landed (reached ground level) { setLocation(getX(), groundLevel); // set on ground Greenfoot.getKey(); // clears any key pressed during jump } } else // on ground { if ( "space" .equals(Greenfoot.getKey())) // jump key detected { ySpeed = - 15 ; // add jump speed setLocation(getX(), getY()+ySpeed; // leave ground } } } } |