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
}
}
}