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

2013/5/22

Game error

2
3
4
5
geekykid2013 geekykid2013

2013/5/24

#
okay that seems to work. Now when the robot intersects approx 6 eggs the world resets to the beginning again, is their a reason for this?

import java.util.List;
import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)

/**
 * The Robot of the game. It moves and bounces off the walls and the paddle.
 * 
 * @author  
 * @version (Version 1.0)
 */
public class Robot extends Actor
{

    private int points = 0;
    private Counter counter; 
    private HealthBar healthBar;

    private int deltaX; //  delat is movement in the x direction
    private int deltaY; //  delta is movement in the y direction
    private int count = 2;
    
   

    private boolean fixed = true; // ????

    public Robot(Counter c, HealthBar hb)
    {
        counter = c;
        healthBar = hb;
    }

    public HealthBar getHealthBar()
    {
       
        return healthBar;
    }
    
    public Counter getCounter()
    {
        return counter;
    }

    /**
     * Act. Move the Robot if we're not fixed to paddle.
     */
    public void act()
    {
        if (!fixed)
        {
            move();
            makeSmoke();
            checkEggs();
            checkNextLevel();
            checkOut();
            if (getWorld() == null) return;
            checkNextLevel();
            
        }
    }

    /**
     * Move the Robot. Thencheck what we've hit.
     */
    public void move()
    {
        setLocation (getX() + deltaX, getY() + deltaY);
        checkPaddle();
        checkWalls();
        
    }

    /**
     * Check whether we've hit one of the three walls. Reverse direction
     */
    private void checkWalls()
    {
        if (getX() == 0 || getX() == getWorld().getWidth()-1) {
            deltaX = -deltaX;
            //Greenfoot.playSound("zipMove.mp3");
        }
        if (getY() == 0) {
            deltaY = -deltaY;
            //Greenfoot.playSound("zipMove.mp3");
        }
    }

    /**
     * Check whether we're out (bottom of screen).
     */
    private void checkOut()
    {   
        if (getY() == getWorld().getHeight()-1) 
        {
            List<Paddle> paddles = getWorld().getObjects(Paddle.class);
            Robot newRobot = new Robot(counter, healthBar);
            getWorld().addObject(newRobot, paddles.get(0).getX(), paddles.get(0).getY() - 35);
            paddles.get(0).setNewRobot(newRobot);
            getWorld().removeObject(this);
        }
    }

    /**
     * Check whether we have hit an egg, and make the egg disappear if we have
     */

    private void checkEggs()
    {
        Actor egg = getOneIntersectingObject(goldEgg.class);
        if (egg != null)
        {
            getWorld().removeObject(egg);
            deltaY = -deltaY;
            counter.add(5);
            Greenfoot.playSound("goldTwinkle.mp3");
        }
        
        egg = getOneIntersectingObject(MagicEgg.class);
        if (egg != null)
        {
            getWorld().removeObject(egg);
            deltaY = -deltaY;
            counter.add(7);
            Greenfoot.playSound("MagicEggTwinkle.mp3");
            
        }

        egg = getOneIntersectingObject(yellowEgg.class);
        if (egg != null)
        {
            getWorld().removeObject(egg);
            deltaY = -deltaY;
            counter.add(3);
            Greenfoot.playSound("negTone.mp3");
        }
        
        egg = getOneIntersectingObject(redEgg.class);
        if (egg != null)
        {
            getWorld().removeObject(egg);
            deltaY = -deltaY;
            counter.add(5);
            Greenfoot.playSound("negTone.mp3");
        }
        
        egg = getOneIntersectingObject(blueEgg.class);
        if (egg != null)
        {
            getWorld().removeObject(egg);
            deltaY = -deltaY;
            healthBar.add(-10);
            Greenfoot.playSound("negTone.mp3");
        }

        //if (counter.getValue() >= 60) {
        //     gameOver();
    }

    private void checkPaddle()
    {
        Actor paddle = getOneIntersectingObject(Paddle.class);
        if (paddle != null) {
            deltaY = -deltaY;
            int offset = getX() - paddle.getX();
            deltaX = deltaX + (offset/10);
            if (deltaX> 7) {
                deltaX = 7;
                Greenfoot.playSound("zipMove.mp3");
            }
            if (deltaX < -7) {
                deltaX = -7;
            }
            //SquareWorld mySquareWorld = (SquareWorld) getWorld();
            //mySquareWorld.score();

        }
    }

    /**
     * Move the Robot a given distance sideways
     */
    public void move(int dist)
    {
        setLocation (getX() + dist, getY());
        //Greenfoot.playSound("zipMove.mp3");
        

    }

    /**
     * Put out a puff of smoke (only on every second call).
     */
    private void makeSmoke()
    {
        count--;
        if (count == 0) {
            getWorld().addObject ( new Smoke(), getX(), getY());
            count = 2;
        }
    }

    /**
     * Release the Robot from the paddle.
     */
    public void release()
    {
        deltaX = Greenfoot.getRandomNumber(11) - 5;
        deltaY = -5;
        fixed = false;
    }
    
    /**
     * Check whether we should go to the next level, and if yes, start the next level.
     */
    private void checkNextLevel()
    {
         if (getX() == getWorld().getWidth()-1) {
            if (getWorld().getObjects(goldEgg.class).isEmpty()) {
                Greenfoot.setWorld(new CircleWorld(this));
                }
                else {
                Greenfoot.setWorld(new SquareWorld(this));
                 }
           }
        }
    }


danpost danpost

2013/5/24

#
I am not sure the logic is good for what you want in the 'checkNextLevel' method. Right now, it says, "if robot is not at right edge of the world, do nothing; otherwise, if no gold eggs remain, start a new CircleWorld else start a new SquareWorld.
geekykid2013 geekykid2013

2013/5/24

#
import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
import java.awt.Color;

/**
 * 
 * The square world. The square world has Gold Eggs that need to be collected
 * 
 * @author  
 * @version 1.0
 */
    public class SquareWorld extends World
    {
        
        private Counter counter;            // fields for Counter class
        private HealthBar healthBar;        //Fields for HealthBar
        private Paddle paddle;              // Fields for Paddle
        private Robot robot;                // Fields Robot   
    /**
     * Constructor for objects of class SquareWorld.
     * 
     */
        public SquareWorld() // This is the First Constructor Method 
        {  
        this(null); 
        }
        
        public SquareWorld(Robot inRobot) // This is the Second Constructor Method
        {
        super(700, 700, 1, true); // Create a new world with 700x700 cells with a cell size of 1x1 pixels.
        setPaintOrder ( Robot.class, Smoke.class );
        if (inRobot == null) 
        {
        counter = new Counter();
        healthBar = new HealthBar ("Robot Health", "", 100, 100);
        robot = new Robot(counter, healthBar);
        }
        else
        {
            counter = inRobot.getCounter();
            healthBar = inRobot.getHealthBar();
            robot = inRobot;
        }
        addObject(counter, 100, 678);
        addObject(healthBar, 600, 678);
        addObject(robot, getWidth()/2, getHeight()-90);
        paddle = new Paddle(robot);
        addObject(paddle, getWidth()/2, getHeight()-55);
   }
        
        
        /**
        else counter = inRobot.getCounter();
        addObject (counter, 100, 678);
        if (inRobot == null) healthBar = new HealthBar ("Robot Health", "", 100, 100);
        else healthBar = inRobot.getHealthBar();
        addObject(healthBar, 600, 678);
        if (inRobot == null) robot = new Robot(counter, healthBar);
        else robot = inRobot;
        addObject(robot, getWidth() / 2, getHeight() - 90);
        if (inRobot == null) robot = new Robot(counter, healthBar);
        else robot = inRobot;
        addObject(robot, getWidth() / 2, getHeight() - 90);
        paddle = new Paddle(robot); // set the Paddle to the world
        addObject ( paddle, getWidth() / 2, getHeight() - 55); //add the paddle object to th world
        */
    
    
    
    /**
     * Prepare the world for the start of the program. That is: create the initial
     * objects and add them to the world.
    */
    
   
    
    //private void prepare()
    {
        goldEgg goldegg = new goldEgg();
        addObject(goldegg, 319, 404);
        goldegg.setLocation(309, 397);
        goldEgg goldegg2 = new goldEgg();
        addObject(goldegg2, 316, 190);
        goldegg2.setLocation(308, 182);
        goldEgg goldegg3 = new goldEgg();
        addObject(goldegg3, 465, 262);
        goldegg3.setLocation(458, 259);
        goldEgg goldegg4 = new goldEgg();
        addObject(goldegg4, 556, 95);
        goldegg4.setLocation(552, 95);
        goldEgg goldegg5 = new goldEgg();
        addObject(goldegg5, 145, 97);
        goldegg5.setLocation(143, 91);
        goldEgg goldegg6 = new goldEgg();
        addObject(goldegg6, 151, 266);
        goldegg6.setLocation(142, 258);
        goldEgg goldegg7 = new goldEgg();
        addObject(goldegg7, 557, 417);
        goldegg7.setLocation(555, 411);
        goldEgg goldegg8 = new goldEgg();
        addObject(goldegg8, 237, 335);
        goldegg8.setLocation(232, 332);
        goldEgg goldegg9 = new goldEgg();
        addObject(goldegg9, 353, 291);
        goldegg9.setLocation(346, 286);
        goldEgg goldegg10 = new goldEgg();
        addObject(goldegg10, 146, 493);
        goldegg10.setLocation(144, 486);
        goldEgg goldegg11 = new goldEgg();
        addObject(goldegg11, 389, 494);
        goldegg11.setLocation(386, 483);
        goldEgg goldegg12 = new goldEgg();
        addObject(goldegg12, 564, 268);
        goldegg12.setLocation(553, 259);
        goldEgg goldegg13 = new goldEgg();
        addObject(goldegg13, 394, 100);
        goldegg13.setLocation(388, 91);
        redEgg redegg = new redEgg();
        addObject(redegg, 234, 100);
        redegg.setLocation(227, 92);
        blueEgg blueegg = new blueEgg();
        addObject(blueegg, 314, 100);
        blueegg.setLocation(307, 93);
        redEgg redegg2 = new redEgg();
        addObject(redegg2, 472, 101);
        redegg2.setLocation(462, 88);
        yellowEgg yellowegg = new yellowEgg();
        addObject(yellowegg, 393, 187);
        yellowegg.setLocation(389, 181);
        yellowEgg yellowegg2 = new yellowEgg();
        addObject(yellowegg2, 464, 334);
        yellowegg2.setLocation(453, 332);
        redEgg redegg3 = new redEgg();
        addObject(redegg3, 239, 267);
        redegg3.setLocation(233, 260);
        blueEgg blueegg2 = new blueEgg();
        addObject(blueegg2, 152, 341);
        blueegg2.setLocation(143, 332);
        blueEgg blueegg3 = new blueEgg();
        addObject(blueegg3, 464, 195);
        blueegg3.setLocation(458, 187);
        yellowEgg yellowegg3 = new yellowEgg();
        addObject(yellowegg3, 560, 190);
        yellowegg3.setLocation(553, 185);
        redEgg redegg4 = new redEgg();
        addObject(redegg4, 149, 418);
        redegg4.setLocation(144, 412);
        blueEgg blueegg4 = new blueEgg();
        addObject(blueegg4, 149, 195);
        blueegg4.setLocation(141, 182);
        yellowEgg yellowegg4 = new yellowEgg();
        addObject(yellowegg4, 236, 191);
        yellowegg4.setLocation(230, 184);
        redEgg redegg5 = new redEgg();
        addObject(redegg5, 456, 403);
        redegg5.setLocation(454, 394);
        yellowEgg yellowegg5 = new yellowEgg();
        addObject(yellowegg5, 241, 401);
        yellowegg5.setLocation(231, 392);
        redEgg redegg6 = new redEgg();
        addObject(redegg6, 307, 496);
        redegg6.setLocation(304, 486);
        blueEgg blueegg5 = new blueEgg();
        addObject(blueegg5, 388, 402);
        blueegg5.setLocation(381, 395);
        blueEgg blueegg6 = new blueEgg();
        addObject(blueegg6, 559, 340);
        blueegg6.setLocation(554, 335);
        yellowEgg yellowegg6 = new yellowEgg();
        addObject(yellowegg6, 558, 493);
        yellowegg6.setLocation(553, 490);
        redEgg redegg7 = new redEgg();
        addObject(redegg7, 233, 491);
        redegg7.setLocation(227, 485);
        blueEgg blueegg7 = new blueEgg();
        addObject(blueegg7, 472, 492);
        blueegg7.setLocation(461, 481);
        removeObject(redegg4);
        redEgg redegg8 = new redEgg();
        addObject(redegg8, 148, 416);
        redegg8.setLocation(142, 408);
    }
}
The problem actually occurs when the robot moves to the right hand side of the world and hits the right hand wall. when this happens the restarts back to its original position. I'm not sure why this happens? can you help?
geekykid2013 geekykid2013

2013/5/24

#
The problem actually occurs when the robot moves to the right hand side of the world and hits the right hand wall. when this happens the restarts back to its original position. I'm not sure why this happens? can you help?

import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
import java.awt.Color;

/**
 * 
 * The square world. The square world has Gold Eggs that need to be collected
 * 
 * @author  
 * @version 1.0
 */
    public class SquareWorld extends World
    {
        
        private Counter counter;            // fields for Counter class
        private HealthBar healthBar;        //Fields for HealthBar
        private Paddle paddle;              // Fields for Paddle
        private Robot robot;                // Fields Robot   
    /**
     * Constructor for objects of class SquareWorld.
     * 
     */
        public SquareWorld() // This is the First Constructor Method 
        {  
        this(null); 
        }
        
        public SquareWorld(Robot inRobot) // This is the Second Constructor Method
        {
        super(700, 700, 1, true); // Create a new world with 700x700 cells with a cell size of 1x1 pixels.
        setPaintOrder ( Robot.class, Smoke.class );
        if (inRobot == null) 
        {
        counter = new Counter();
        healthBar = new HealthBar ("Robot Health", "", 100, 100);
        robot = new Robot(counter, healthBar);
        }
        else
        {
            counter = inRobot.getCounter();
            healthBar = inRobot.getHealthBar();
            robot = inRobot;
        }
        addObject(counter, 100, 678);
        addObject(healthBar, 600, 678);
        addObject(robot, getWidth()/2, getHeight()-90);
        paddle = new Paddle(robot);
        addObject(paddle, getWidth()/2, getHeight()-55);
   }
        
        
        /**
        else counter = inRobot.getCounter();
        addObject (counter, 100, 678);
        if (inRobot == null) healthBar = new HealthBar ("Robot Health", "", 100, 100);
        else healthBar = inRobot.getHealthBar();
        addObject(healthBar, 600, 678);
        if (inRobot == null) robot = new Robot(counter, healthBar);
        else robot = inRobot;
        addObject(robot, getWidth() / 2, getHeight() - 90);
        if (inRobot == null) robot = new Robot(counter, healthBar);
        else robot = inRobot;
        addObject(robot, getWidth() / 2, getHeight() - 90);
        paddle = new Paddle(robot); // set the Paddle to the world
        addObject ( paddle, getWidth() / 2, getHeight() - 55); //add the paddle object to th world
        */
    
    
    
    /**
     * Prepare the world for the start of the program. That is: create the initial
     * objects and add them to the world.
    */
    
   
    
    //private void prepare()
    {
        goldEgg goldegg = new goldEgg();
        addObject(goldegg, 319, 404);
        goldegg.setLocation(309, 397);
        goldEgg goldegg2 = new goldEgg();
        addObject(goldegg2, 316, 190);
        goldegg2.setLocation(308, 182);
        goldEgg goldegg3 = new goldEgg();
        addObject(goldegg3, 465, 262);
        goldegg3.setLocation(458, 259);
        goldEgg goldegg4 = new goldEgg();
        addObject(goldegg4, 556, 95);
        goldegg4.setLocation(552, 95);
        goldEgg goldegg5 = new goldEgg();
        addObject(goldegg5, 145, 97);
        goldegg5.setLocation(143, 91);
        goldEgg goldegg6 = new goldEgg();
        addObject(goldegg6, 151, 266);
        goldegg6.setLocation(142, 258);
        goldEgg goldegg7 = new goldEgg();
        addObject(goldegg7, 557, 417);
        goldegg7.setLocation(555, 411);
        goldEgg goldegg8 = new goldEgg();
        addObject(goldegg8, 237, 335);
        goldegg8.setLocation(232, 332);
        goldEgg goldegg9 = new goldEgg();
        addObject(goldegg9, 353, 291);
        goldegg9.setLocation(346, 286);
        goldEgg goldegg10 = new goldEgg();
        addObject(goldegg10, 146, 493);
        goldegg10.setLocation(144, 486);
        goldEgg goldegg11 = new goldEgg();
        addObject(goldegg11, 389, 494);
        goldegg11.setLocation(386, 483);
        goldEgg goldegg12 = new goldEgg();
        addObject(goldegg12, 564, 268);
        goldegg12.setLocation(553, 259);
        goldEgg goldegg13 = new goldEgg();
        addObject(goldegg13, 394, 100);
        goldegg13.setLocation(388, 91);
        redEgg redegg = new redEgg();
        addObject(redegg, 234, 100);
        redegg.setLocation(227, 92);
        blueEgg blueegg = new blueEgg();
        addObject(blueegg, 314, 100);
        blueegg.setLocation(307, 93);
        redEgg redegg2 = new redEgg();
        addObject(redegg2, 472, 101);
        redegg2.setLocation(462, 88);
        yellowEgg yellowegg = new yellowEgg();
        addObject(yellowegg, 393, 187);
        yellowegg.setLocation(389, 181);
        yellowEgg yellowegg2 = new yellowEgg();
        addObject(yellowegg2, 464, 334);
        yellowegg2.setLocation(453, 332);
        redEgg redegg3 = new redEgg();
        addObject(redegg3, 239, 267);
        redegg3.setLocation(233, 260);
        blueEgg blueegg2 = new blueEgg();
        addObject(blueegg2, 152, 341);
        blueegg2.setLocation(143, 332);
        blueEgg blueegg3 = new blueEgg();
        addObject(blueegg3, 464, 195);
        blueegg3.setLocation(458, 187);
        yellowEgg yellowegg3 = new yellowEgg();
        addObject(yellowegg3, 560, 190);
        yellowegg3.setLocation(553, 185);
        redEgg redegg4 = new redEgg();
        addObject(redegg4, 149, 418);
        redegg4.setLocation(144, 412);
        blueEgg blueegg4 = new blueEgg();
        addObject(blueegg4, 149, 195);
        blueegg4.setLocation(141, 182);
        yellowEgg yellowegg4 = new yellowEgg();
        addObject(yellowegg4, 236, 191);
        yellowegg4.setLocation(230, 184);
        redEgg redegg5 = new redEgg();
        addObject(redegg5, 456, 403);
        redegg5.setLocation(454, 394);
        yellowEgg yellowegg5 = new yellowEgg();
        addObject(yellowegg5, 241, 401);
        yellowegg5.setLocation(231, 392);
        redEgg redegg6 = new redEgg();
        addObject(redegg6, 307, 496);
        redegg6.setLocation(304, 486);
        blueEgg blueegg5 = new blueEgg();
        addObject(blueegg5, 388, 402);
        blueegg5.setLocation(381, 395);
        blueEgg blueegg6 = new blueEgg();
        addObject(blueegg6, 559, 340);
        blueegg6.setLocation(554, 335);
        yellowEgg yellowegg6 = new yellowEgg();
        addObject(yellowegg6, 558, 493);
        yellowegg6.setLocation(553, 490);
        redEgg redegg7 = new redEgg();
        addObject(redegg7, 233, 491);
        redegg7.setLocation(227, 485);
        blueEgg blueegg7 = new blueEgg();
        addObject(blueegg7, 472, 492);
        blueegg7.setLocation(461, 481);
        removeObject(redegg4);
        redEgg redegg8 = new redEgg();
        addObject(redegg8, 148, 416);
        redegg8.setLocation(142, 408);
    }
}
geekykid2013 geekykid2013

2013/5/24

#
Sorry I sent the wrong code. I will send the Robot() class code instead. The problem actually occurs when the robot moves to the right hand side of the world and hits the right hand wall. when this happens the robot restarts back to its original position. I'm not sure why this happens? can you help? I think the problem is in checkWalls() method import java.util.List; import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) /** * The Robot of the game. It moves and bounces off the walls and the paddle. * * @author * @version (Version 1.0) */ public class Robot extends Actor { private int points = 0; private Counter counter; private HealthBar healthBar; private int deltaX; // delat is movement in the x direction private int deltaY; // delta is movement in the y direction private int count = 2; //used insmoke effects private boolean fixed = true; // indicates the ball is not released from the paddle private boolean hasEggBeenCollected = false; public Robot(Counter c, HealthBar hb) { counter = c; healthBar = hb; } public HealthBar getHealthBar() { return healthBar; } public Counter getCounter() { return counter; } /** * Act. Move the Robot if we're not fixed to paddle. */ public void act() { if (!fixed) { move(); makeSmoke(); checkEggs(); checkNextLevel(); checkOut(); if (getWorld() == null) return; checkNextLevel(); } } /** * Move the Robot. Thencheck what we've hit. */ public void move() { setLocation (getX() + deltaX, getY() + deltaY); checkPaddle(); checkWalls(); } /** * Check whether we've hit one of the three walls. Reverse direction */ private void checkWalls() { if (getX() == 0 || getX() == getWorld().getWidth()) { deltaX = -deltaX; Greenfoot.playSound("zipMove.mp3"); } if (getY() == 0) { deltaY = -deltaY; Greenfoot.playSound("zipMove.mp3"); } } /** * Check whether we're out (bottom of screen). */ private void checkOut() { if (getY() == getWorld().getHeight()-1) { List<Paddle> paddles = getWorld().getObjects(Paddle.class); Robot newRobot = new Robot(counter, healthBar); getWorld().addObject(newRobot, paddles.get(0).getX(), paddles.get(0).getY() - 35); paddles.get(0).setNewRobot(newRobot); getWorld().removeObject(this); } } /** * Check whether we have hit an egg, and make the egg disappear if we have */ private void checkEggs() { Actor egg = getOneIntersectingObject(goldEgg.class); if ((egg != null) && (hasEggBeenCollected == false)) // if an gold egg has been intersetcted AND no egg has been collected so far, do: { getWorld().removeObject(egg); deltaY = -deltaY; counter.add(5); Greenfoot.playSound("goldTwinkle.mp3"); hasEggBeenCollected = true; // an gold egg has been collected } egg = getOneIntersectingObject(MagicEgg.class); if ((egg != null) && (hasEggBeenCollected == false)) { getWorld().removeObject(egg); deltaY = -deltaY; counter.add(10); Greenfoot.playSound("MagicEggTwinkle.mp3"); hasEggBeenCollected = true; // an magic egg has been collected } egg = getOneIntersectingObject(yellowEgg.class); if ((egg != null) && (hasEggBeenCollected == false)) { getWorld().removeObject(egg); deltaY = -deltaY; healthBar.add(-5); Greenfoot.playSound("negTone.mp3"); hasEggBeenCollected = true; // an yellow egg has been collected } egg = getOneIntersectingObject(redEgg.class); if ((egg != null) && (hasEggBeenCollected == false)) { getWorld().removeObject(egg); deltaY = -deltaY; healthBar.add(-2); Greenfoot.playSound("negTone.mp3"); hasEggBeenCollected = true; // an red egg has been collected } egg = getOneIntersectingObject(blueEgg.class); if ((egg != null) && (hasEggBeenCollected == false)) { getWorld().removeObject(egg); deltaY = -deltaY; healthBar.add(-3); Greenfoot.playSound("negTone.mp3"); hasEggBeenCollected = true; // an blue egg has been collected } //if (counter.getValue() >= 60) { // gameOver(); } private void checkPaddle() { Actor paddle = getOneIntersectingObject(Paddle.class); if (paddle != null) { deltaY = -deltaY; int offset = getX() - paddle.getX(); deltaX = deltaX + (offset/10); if (deltaX> 7) { deltaX = 7; } if (deltaX < -7) { deltaX = -7; } Greenfoot.playSound("zipMove.mp3"); hasEggBeenCollected = false; //SquareWorld mySquareWorld = (SquareWorld) getWorld(); //mySquareWorld.score(); } } /** * Move the Robot a given distance sideways */ public void move(int dist) { setLocation (getX() + dist, getY()); //Greenfoot.playSound("zipMove.mp3"); } /** * Put out a puff of smoke (only on every second call). */ private void makeSmoke() { count--; if (count == 0) { getWorld().addObject ( new Smoke(), getX(), getY()); count = 2; } } /** * Release the Robot from the paddle. */ public void release() { deltaX = Greenfoot.getRandomNumber(11) - 5; deltaY = -5; fixed = false; hasEggBeenCollected = false; } /** * Check whether we should go to the next level, and if yes, start the next level. */ private void checkNextLevel() { if (getX() == getWorld().getWidth()-1) { if (getWorld().getObjects(goldEgg.class).isEmpty()) { Greenfoot.setWorld(new CircleWorld(this)); } else { Greenfoot.setWorld(new SquareWorld(this)); } } } }
danpost danpost

2013/5/24

#
Again, you need to change the conditions in your 'checkNextLevel' method to properly qualify when to change worlds, and which world to change to.
You need to login to post a reply.
2
3
4
5