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

2017/6/3

getImage()

mrlemon mrlemon

2017/6/3

#
Hi all, Pretty new to this and need to get this done for school. I have a player and enemy class within my world. I want to be able to get the image the player is currently using from within my enemy class. I have tried this but it tells me: "can not find symbol - variable image 17"
private void die(){
        ScrollingWorld theWorld = (ScrollingWorld) getWorld();
        Player player = (Player) theWorld.getPlayer();
        if(isTouching(Player.class) && player.getImage().equals(image17)) 
        {
            getWorld().removeObject(this);
        }
        
    }
danpost danpost

2017/6/3

#
mrlemon wrote...
I have a player and enemy class within my world. I want to be able to get the image the player is currently using from within my enemy class. I have tried this but it tells me: "can not find symbol - variable image 17" < Code Omitted >
Where and how is image17 declared? Also, how is the image of the player set?
mrlemon mrlemon

2017/6/3

#
image 17 is declared within the player class and is set when a key is pressed:
public class Player extends Erm
{

    private GreenfootImage image1;
    private GreenfootImage image2;
    private GreenfootImage image3;
    private GreenfootImage image4;
    private GreenfootImage image5;
    private GreenfootImage image6;
    private GreenfootImage image7;
    private GreenfootImage image8;
    private GreenfootImage image9;
    private GreenfootImage image10;
    private GreenfootImage image11;
    private GreenfootImage image12;
    private GreenfootImage image13;
    private GreenfootImage image14;
    private GreenfootImage image15;
    private GreenfootImage image16;
    public GreenfootImage image17;
    private GreenfootImage image18;
    private GreenfootImage image19;
    private GreenfootImage image20;
    private GreenfootImage image21;
    private GreenfootImage image22;
    private boolean facingLeft;
    private boolean isAlive;
    private boolean keyPressed;

    private int frame = 1;
    private int animationCounter = 0;
    private int hitsTaken = 0;

    public Player()
    {

        image1 = new GreenfootImage("stance0.png");
        image2 = new GreenfootImage("stance1.png");
        image3 = new GreenfootImage("stance2.png");
        image4 = new GreenfootImage("stance0M.png");
        image5 = new GreenfootImage("stance1M.png");
        image6 = new GreenfootImage("stance2M.png");
        image7 = new GreenfootImage("prehighkick.png");
        image8 = new GreenfootImage("prehighkickright.png");
        image9 = new GreenfootImage("highkick.png");
        image10 = new GreenfootImage("highkickright.png");
        image11 = new GreenfootImage("jab.png");
        image12 = new GreenfootImage("jabright.png");
        image13 = new GreenfootImage("jump.png");
        image14 = new GreenfootImage("jumpright.png");
        image15 = new GreenfootImage("jumpkick.png");
        image16 = new GreenfootImage("jumpkickright.png");
        image17 = new GreenfootImage("crouch.png");
        image18 = new GreenfootImage("crouchright.png");
        image19 = new GreenfootImage("crouchjab.png");
        image20 = new GreenfootImage("crouchjabright.png");
        image21 = new GreenfootImage("crouchkick.png");
        image22 = new GreenfootImage("crouchkickright.png");
        keyPressed = false;
        facingLeft = true;

        isAlive = true;
        hitsTaken = 0;

    }
mrlemon mrlemon

2017/6/3

#
So basically i want to be able to check from within the enemy class what image the player is set to. For example if the player image is set to "highkick.png" i need to be able to check this from within the enemy so that the enemy can die.
danpost danpost

2017/6/3

#
Okay. I think all you need to do is change line 4 in the initial code post to this:
if (isTouching(Player.class) && player.getImage().equals(player.image17)) 
mrlemon mrlemon

2017/6/3

#
That did it!!! Thanks a lot Danpost!!!
You need to login to post a reply.