Hi. How do you make an actor jump? Thanks in advance.


// instance field private int vSpeed; // in act or a 'moveVertically' method that it calls vSpeed++; // gravity setLocation(getX(), getY()+vSpeed); // vertical movement if (vSpeed < 0) // if rising { if (isTouching(null)) // bumps head { // adjustPosition under object vSpeed = 0; } } if (vSpeed > 0) // falling { if (isTouching(null) || atWorldEdge()) // on surface { // adjust position over object or edge vSpeed = 0; if (/* jump trigger detected */) vSpeed -= 15; // adjust value as needed } }
// instance field private int vSpeed; // in act or a 'moveVertically' method that it calls vSpeed++; // gravity setLocation(getX(),getY()+vSpeed); // verical movement if (vSpeed < 0) // if rising { if (isTouching(null)) // bumps head { // adjustPosition under object vSpeed = 0; } } if (vSpeed > 0) // falling { if (isTouching(null) || atWorldEdge()) // on surface { // adjust position over object or edge vSpeed = 0; if (/* jump trigger detected */) vSpeed = 15; //adjust value as needed } } }
public void moveAround() { if (Greenfoot.isKeyDown("A")) { move(-4); } if (Greenfoot.isKeyDown("D")) { move(4); } if (Greenfoot.isKeyDown("W")) { turn(-2); } if (Greenfoot.isKeyDown("S")) { turn(2); } if (Greenfoot.isKeyDown("1")) { setLocation(getX(), getY() - 8); } // instance field private int vSpeed; // in act or a 'moveVertically' method that it calls vSpeed++; // gravity setLocation(getX(),getY()+vSpeed); // verical movement if (vSpeed < 0) // if rising { if (isTouching(null)) // bumps head { // adjustPosition under object vSpeed = 0; } } if (vSpeed > 0) // falling { if (isTouching(null) || atWorldEdge()) // on surface { // adjust position over object or edge vSpeed = 0; if (/* jump trigger detected */) vSpeed -= 15; //adjust value as needed } } }