import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
/**
* Write a description of class Jumper here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class Jumper extends BaseClass
{
private int ySpeed;
private int speed=3;
int groundLevel = 500;
/**
* Act - do whatever the Jumper wants to do. This method is called whenever
* the 'Act' or 'Run' button gets pressed in the environment.
*/
public void act()
{
int groundLevel = 500;
boolean onGround = (getY() == groundLevel);
if (!onGround) // in middle of jump
{
if(!(ySpeed < 15))
{
ySpeed=15;
}
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
{
if (Greenfoot.isKeyDown("w"))
{
ySpeed = -15; // add jump speedySpeed = -15; // add jump speed
setLocation(getX(), getY()+ySpeed); // leave groundsetLocation(getX(), getY()+ySpeed); // leave
}
}
keys();
gameOver();
}
public void setLocation(int x, int y)
{
int oldX = getX();
int oldY = getY();
super.setLocation(x, y);
if(!getIntersectingObjects(Bark.class).isEmpty())
{
super.setLocation(oldX, oldY);
}
}
public void keys()
{
if (Greenfoot.isKeyDown("a"))
{
setLocation(getX() - speed, getY());
setImage("redcapleft.gif");
}
if (Greenfoot.isKeyDown("d"))
{
setLocation(getX() + speed, getY());
setImage("redcapright.gif");
}
if (Greenfoot.isKeyDown("q"))
{
removeObject(Announcement.class);
}
}
}
