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

2012/5/14

weird syntax error

Michionlion Michionlion

2012/5/14

#
code:
import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)

/**
 * 
 * 
 * @author Michionlion 
 * @version 5/13/2012
 */
public class Basic extends Enemy {

    private int xSpeed;
    private int ySpeed;
    private boolean fire;
    private boolean popUp;
    private PopUp Pop;
    protected static int number;

    public Basic() {
        Pop = new PopUp("Enemy " + number, this);
        number++;
    }

    public void act() {
        popUp = getWorld().getPlayer().getPopUp();
        moves();
        end();
    }

    private void end() {
        if (popUp) getWorld().addObject(Pop, getX() + Pop.getImgWidth()/2, getY() - Pop.getImgHeight()/2);
        else if (!popUp) getWorld().removeObject(Pop);
        fire = false;
        xSpeed = 0;
        ySpeed = 0;
    }

    private void moves() {
            turnTowards(getWorld().getPlayer().getX(), getWorld().getPlayer().getY());
            move(1);
    }
}
and the RWorld class:
import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)

/**
 * Write a description of class RWorld here.
 * 
 * @author Michionlion 
 * @version 5/12/2012
 */
public class RWorld extends World {

    public int height = 400;
    public int width = 600;
    private Player player;

    public RWorld() {
        super(600, 400, 1);
        Greenfoot.setSpeed(55);
        player = new Player();
        addObject(player, width/2, height/2);
    }

    public void act() {

        
    }
    
    public Player getPlayer() {
        return player;
    }
}
Syntax error happens on line 24, the call to getPlayer() throws the error 'cannot find symbol - method getPlayer()' The method does exist, and as far as i can tell it should work. Any help? Edit: to clarify, there is a call to getWorld() before getPlayer, and it could be returning a different world.
danpost danpost

2012/5/14

#
The World class does not contain the getPlayer() method; your sub-class of World (RWorld) does, however. Use:
popUp = ((RWorld) getWorld()).getPlayer().getPopUp();
Michionlion Michionlion

2012/5/14

#
ah... forgot a simple cast. Wow....
You need to login to post a reply.