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

2013/5/22

Game Error contd.

geekykid2013 geekykid2013

2013/5/22

#
I have created to constructors in my code but I get an error - cannot ind symbol - variable inRobot. Do I have to initialize the inRobot = 0; Here is my code:
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 static final int GAP = 12;

    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(Robot inRobot)  
    {  
        super(700, 700, 1,false); // first line Constructor 
        robot = inRobot;  
        // whatever code you have in the other constructor  
    }  
       // your other constructor should call the one above like this  
        public SquareWorld()  
    {  
        super(700, 700, 1,false); // second line Constructor 
        robot = inRobot;
        this(new Robot());  
    }  
    
     
    {   
        //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();
        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();
    }
    
        //counter = new Counter(); // set the counter to the world
        //addObject (counter, 100, 678); // add the counter object to the world
        //healthBar = new HealthBar("Robot Health", "", 100, 100);
        //addObject(healthBar, 600, 678);
        //robot = new Robot(counter, healthBar);
        //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 the world
    
    //}
    
    

    //public void RobotIsOut()
    //{
    //    paddle.newRobot();
    //}

   // public void score()
    //{
      //  counter.addScore();
    //}
    
    /**
     * Prepare the world for the start of the program. That is: create the initial
     * objects and add them to the world.
     */
    private void prepare()
    {

        //Counter counter = new Counter();
        //addObject(counter, 100, 678);

        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);
    }
    
    
}
davmac davmac

2013/5/23

#
You have two constructors (starting on line 26 and 33), and one of them has an 'inRobot' parameter and the other does not. However, they both try to access 'inRobot' in their body (line 29 and line 36). I guess that it's line 36 that's giving you the error, as you're trying to access a parameter that doesn't exist in this constructor. Why do you need the two constructors? Can you just remove the second one? Or just set 'robot' to null in the second one?
You need to login to post a reply.