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

2019/11/26

Greenfoot.mouseClicked doesn't seem to be working

NB111 NB111

2019/11/26

#
This is the code for my class:

public class Blank extends Actor
{  
    public Blank()
    {
        
    }
    
    public void act(Blank blank13, W0rld w) 
    {
        hasMatch(blank13, w);
    }
    
    public void hasMatch(Blank blank13, W0rld w)
    {   
       if(Greenfoot.mouseClicked((Actor)w.getObjects(Blank.class)))
            {
                setImage(new GreenfootImage("3spades.png"));
            }
    }
}

This is the code for my world:

public class MyWorld extends World
{
    Blank blank1;
    Blank blank2;
    Blank blank3;
    Blank blank4;
    Blank blank5;
    Blank blank6;
    Blank blank7;
    Blank blank8;
    Blank blank9;
    Blank blank10;
    Blank blank11;
    Blank blank12;
    Blank blank13;
    Blank blank14;
    Blank blank15;
    Blank blank16;
    Blank blank17;
    Blank blank18;
    
    public MyWorld()
    {    
        // Create a new world with 600x400 cells with a cell size of 1x1 pixels.
        super(600, 400, 1);
        populateWorld();
    }
    
    public void populateWorld()
    {
        blank1 = new Blank();
        addObject(blank1, 50, 200);
        blank7 = new Blank();
        addObject(blank7, 150, 200);
        blank18 = new Blank();
        addObject(blank18, 250, 200);
        blank2 = new Blank();
        addObject(blank2, 350, 200);
        blank11 = new Blank();
        addObject(blank11, 450, 200);
        blank5 = new Blank();
        addObject(blank5, 550, 200);
        
        blank3 = new Blank();
        addObject(blank3, 50, 50);
        blank8 = new Blank();
        addObject(blank8, 150, 50);
        blank17 = new Blank();
        addObject(blank17, 250, 50);
        blank15 = new Blank();
        addObject(blank15, 350, 50);
        blank4 = new Blank();
        addObject(blank4, 450, 50);
        blank16 = new Blank();
        addObject(blank16, 550, 50);
        
        blank13 = new Blank();
        addObject(blank13, 50, 350);
        blank14 = new Blank();
        addObject(blank14, 150, 350);
        blank9 = new Blank();
        addObject(blank9, 250, 350);
        blank6 = new Blank();
        addObject(blank6, 350, 350);
        blank12 = new Blank();
        addObject(blank12, 450, 350);
        blank10 = new Blank();
        addObject(blank10, 550, 350);
    }
}

Whenever I click on any of the objects, the setImage statement that's inside of the mouseClicked if statement doesn't seem to do anything. The image file is in the right directory and everything. What's wrong with the code?
Super_Hippo Super_Hippo

2019/11/26

#
1. The act method should not have any parameters. 2. The mouseClicked method requires an Actor object. Not a list.
public void act()
{
    if (Greenfoot.mouseClicked(this))
    {
        setImage("3spades.png");
    }
}
NB111 NB111

2019/11/26

#
Super_Hippo wrote...
1. The act method should not have any arguments. 2. The mouseClicked method requires an Actor object. Not a list.
public void act()
{
    if (Greenfoot.mouseClicked(this))
    {
        setImage("3spades.png");
    }
}
Thanks
You need to login to post a reply.