This site requires JavaScript, please enable it in your browser!
Greenfoot back
Bobby
Bobby wrote ...

2017/6/14

Spongebob Jumping game

Bobby Bobby

2017/6/14

#
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; } } }
danpost danpost

2017/6/14

#
If you have a specific issue, please do tell. Do not make us look for it. If you are talking about the actor not jumping, then that is because there is no code related to jumping given anywhere in the class. Add some jumping code to the class and then, if you find you are having difficulties, post your issue and include the attempted code.
Bobby Bobby

2017/6/14

#
The problem is that I was following some instructions of a youtube video and at this step my game became grey and I don't understand why. I've tried to improve my code but the same problem persists.
import greenfoot.*;
/**
 * This class defines a crab. Crabs live on the beach.
 */
 public class Bobby extends Animal
{
   private GreenfootImage image1;
   private GreenfootImage image2;
   private GreenfootImage image3;
   private GreenfootImage image4;
   private int Score;
   private int speed = 7;
   private int vSpeed = 5;
   private int acceleration = 1;
   private int jumpStrength =12;
   
     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();
          }
          if(Greenfoot.isKeyDown("up"))
          {
              jump();
              if (getImage() == image1) 
              {
                 setImage(image3);
              }
              if (getImage() == image2)
              {
                 setImage(image4);
              }
              
          }
    }
    
    public void jump()
    {
      vSpeed = -jumpStrength;
      fall();
    }
    
    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()
    {
      int spriteHeight = getImage().getHeight(); // On prend la largeur de l'image.
      int lookForGround = (int) (spriteHeight/2) + 5; // On la divise par 2.
        
      Actor ground = getOneObjectAtOffset ( 0, getHeight()/2, Ground.class);
      if (ground == null)
      {
          return false;
      }
      else
      {
          return true;
      }
    }

    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 (BurgersEaten ==10)
            // {Greenfoot.playSound("fanfare.wav") Greenfoot.stop();
             }
          if (canSee(Burger2.class) ) 
          {
            eat(Burger2.class);
            Greenfoot.playSound("eat-bob.mp3");
      
            Score = Score +100;
            // if (BurgersEaten ==10)
            // {Greenfoot.playSound("fanfare.wav") Greenfoot.stop();
             }
             if (canSee(Trophée.class) ) 
          {
            eat(Trophée.class);
            Greenfoot.playSound("eat-bob.mp3");
      
            Score = Score +500;
            // if (BurgersEaten ==10)
            // {Greenfoot.playSound("fanfare.wav") Greenfoot.stop();
             }
            }
     
   
}
danpost danpost

2017/6/14

#
When does it become gray? * when you compile (are the execution buttons grayed also)? * when you try to jump? * some other time? Be specific. However, it may be related to some code in your World subclass (which you have yet to post).
You need to login to post a reply.