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

2013/2/9

Text Error

Gingervitis Gingervitis

2013/2/9

#
I want to place text when one of my classes eats another class but I get the error message java.lang.NullPointerException at TurtleBlaster.newText(TurtleBlaster.java:43) at TurtleBlaster.tryToEatSpaceTurtle(TurtleBlaster.java:31) at TurtleBlaster.act(TurtleBlaster.java:19) at greenfoot.core.Simulation.actActor(Simulation.java:565) at greenfoot.core.Simulation.runOneLoop(Simulation.java:523) at greenfoot.core.Simulation.runContent(Simulation.java:213) at greenfoot.core.Simulation.run(Simulation.java:203) Here is the class
import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)

/**
 * Write a description of class TurtleBlaster here.
 * 
 * @author (your name) 
 * @version (a version number or a date)
 */
public class TurtleBlaster extends Animal
{    
    /**
     * Act - do whatever the TurtleBlaster wants to do. This method is called whenever
     * the 'Act' or 'Run' button gets pressed in the environment.
     */
    public void act() 
    {
        tryToEatSpaceTurtle();        
    }  
    
    public void tryToEatSpaceTurtle()
    {
        if (canSee(SpaceTurtle1.class))
        {
            eat(SpaceTurtle1.class);  
            createNewSpaceTurtle2();
            createNewGreenAlien1();
            removeObject();  
            newText();
        }
    }
    
    public void newText()
    {
        Label newLabel;
        newLabel = new Label("Now you have a Turtle Blaster! Press space to shoot");
        
        World world;
        world = getWorld();

        world.addObject(newLabel, 1, 158);
    }
    
     /**
     *  Create a new Turtle and place it randomly
     */
    public void createNewGreenAlien1()
    {
        GreenAlien1 newGreenAlien1;
        newGreenAlien1 = new GreenAlien1();

        World world;
        world = getWorld();
        
        int worldWidth = world.getWidth();
        int worldHeight =world.getHeight();

        int x = Greenfoot.getRandomNumber(worldWidth);
        int y = Greenfoot.getRandomNumber(worldHeight);

        world.addObject(newGreenAlien1, x, y);
    }
    
     /**
     *  Create a new Turtle and place it randomly
     */
    public void createNewSpaceTurtle2()
    {
        SpaceTurtle2 newSpaceTurtle2;
        newSpaceTurtle2 = new SpaceTurtle2();

        World world;
        world = getWorld();

        world.addObject(newSpaceTurtle2, 307, 247);
    }
    
    public void removeObject()
    {
        World world;
        world = getWorld();
        world.removeObject(this);
    }
}
danpost danpost

2013/2/9

#
Switch lines 27 and 28. After calling the 'removeObject' method, calling 'getWorld' will return null.
You need to login to post a reply.