I want that the main character Bobby jumps on Ground but I don't understand what is false in my code...
import greenfoot.*;
/**
* This class defines a crab. Crabs live on the beach.
*/
public class Bobby extends Animal
{
private GreenfootImage image1;
private GreenfootImage image2;
private int Score;
private int speed = 7;
private int vSpeed = 5;
private int acceleration = 1;
public Bobby()
{
image1 = new GreenfootImage("Bobby-droite1.png");
image2 = new GreenfootImage("Bobby-gauche1.png");
//image3 = new GreenfootImage("Bobby-droite2.png");
//image4 = new GreenfootImage("Bobby-gauche2.png");
Score = 0;
}
public void act()
{
lookForBurgers();
checkKeys();
checkFall();
}
public void checkKeys()
{
if (Greenfoot.isKeyDown("right"))
{
setImage(image1);
moveRight();
}
if(Greenfoot.isKeyDown("left"))
{
setImage(image2);
moveLeft();
}
}
public void moveRight()
{
setLocation ( getX() + speed, getY());
}
public void moveLeft()
{
setLocation ( getX() - speed, getY());
}
public void checkFall()
{
if(onGround()) {
vSpeed=0;
}
else
{
fall();
}
}
public boolean onGround()
{
Actor under = getOneObjectAtOffset ( 0, getHeight()/2, Ground.class);
return under != null;
}
public void fall()
{
setLocation ( getX(), getY()+ vSpeed);
vSpeed = vSpeed + acceleration;
}
public void lookForBurgers()
{
if (canSee(Burger1.class) )
{
eat(Burger1.class);
Greenfoot.playSound("eat-bob.mp3");
Score = Score +50;
}
if (canSee(Burger2.class) )
{
eat(Burger2.class);
Greenfoot.playSound("eat-bob.mp3");
Score = Score +100;
}
if (canSee(Trophée.class) )
{
eat(Trophée.class);
Greenfoot.playSound("eat-bob.mp3");
Score = Score +500;
}
}
}
