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

2020/3/8

Need help with Variables

Happycrusher764 Happycrusher764

2020/3/8

#
I need help with getting the counter/ score variable to work in the world class. It says that the score variable cannot be found.
import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)

/**
 * Write a description of class Level2 here.
 * 
 * @author (your name) 
 * @version (a version number or a date)
 */
public class Level2 extends World
{
    
    /**
     * Constructor for objects of class Level2.
     * 
     */
    public Level2()
    {    
        // Create a new world with 600x400 cells with a cell size of 1x1 pixels.
        super(800, 600, 1); 
        prepare();
        
    }
    
    /**
     * Prepare the world for the start of the program.
     * That is: create the initial objects and add them to the world.
     */
    private void prepare()
    {
        Strawberry strawberry = new Strawberry();
        addObject(strawberry,511,373);
        Strawberry strawberry2 = new Strawberry();
        addObject(strawberry2,269,425);
        Strawberry strawberry3 = new Strawberry();
        addObject(strawberry3,335,244);
        Strawberry strawberry4 = new Strawberry();
        addObject(strawberry4,716,385);
        Strawberry strawberry5 = new Strawberry();
        addObject(strawberry5,715,20);
        Strawberry strawberry6 = new Strawberry();
        addObject(strawberry6,162,170);
        Strawberry strawberry7 = new Strawberry();
        addObject(strawberry7,98,487);
        Turtle turtle = new Turtle();
        addObject(turtle,476,467);
        Bee bee = new Bee();
        addObject(bee,361,335);
        Bee bee2 = new Bee();
        addObject(bee2,70,76);
        Bee bee3 = new Bee();
        addObject(bee3,690,170);
        Counter counter = new Counter();
        addObject(counter,29,36);
        counter.setLocation(84,18);
    }
    
    public void act()
    {
        
    }
}
This world is where I want to put an if statement in the void act. However it cannot be found
import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)

/**
 * Write a description of class MyWorld here.
 * 
 * @author (your name) 
 * @version (a version number or a date)
 */
public class MyWorld extends World
{

    /**
     * Constructor for objects of class MyWorld.
     * 
     */
    public MyWorld()
    {    
        // Create a new world with 600x400 cells with a cell size of 1x1 pixels.
        super(800, 600, 1); 
        prepare();
    }
    
    /**
     * 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,49,42);
        Strawberry strawberry = new Strawberry();
        addObject(strawberry,142,362);
        Strawberry strawberry2 = new Strawberry();
        addObject(strawberry2,226,135);
        Strawberry strawberry3 = new Strawberry();
        addObject(strawberry3,745,376);
        Strawberry strawberry4 = new Strawberry();
        addObject(strawberry4,427,493);
        Strawberry strawberry5 = new Strawberry();
        addObject(strawberry5,522,259);
        Bee bee = new Bee();
        addObject(bee,621,118);
        Bee bee2 = new Bee();
        addObject(bee2,130,493);
        Turtle turtle = new Turtle();
        addObject(turtle,697,266);
        turtle.setLocation(680,353);
        counter.setLocation(103,39);
    }
}

//This is the Level1 world
That was the MyWorld world (Level1).
import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)

/**
 * Write a description of class Counter here.
 * 
 * @author (your name) 
 * @version (a version number or a date)
 */
public class Counter extends Actor
{
    int score = 0;  
    /**
     * Act - do whatever the Counter wants to do. This method is called whenever
     * the 'Act' or 'Run' button gets pressed in the environment.
     */
    public void act() 
    {
        setImage(new GreenfootImage("Score: " + score, 50, Color.GREEN, Color.BLACK));
      if (score == 5) Greenfoot.setWorld(new Level2());
      if (score == 5) Greenfoot.playSound ("trans.mp3");
      
    } 
    
    public void addScore()
    {
         score++; 
    }
    
    
}

//This is the Counter actor where the  Score variable is used

 
import greenfoot.*;
import java.util.*;
 
public class Strawberry extends Actor
{
    ArrayList<Counter> counter;
    public void act() 
    {
     HitEnemy();
    }   
    public void HitEnemy()
    {
         if (isTouching (Turtle.class))
         {
             counter = (ArrayList<Counter>)(getWorld().getObjects(Counter.class));
             (counter.get(0)).addScore();
             Greenfoot.playSound("point.mp3");
             getWorld().removeObject (this);
             
         }
    }
}
This is the strawberry that affects the score variable.
import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)

/**
 * Write a description of class Turtle here.
 * 
 * @author (your name) 
 * @version (a version number or a date)
 */
public class Turtle extends Actor
{
     public Turtle()
    {    
        GreenfootImage image = getImage();  
        image.scale(50, 50);
        setImage(image);
    }
    /**
     * Act - do whatever the Turtle wants to do. This method is called whenever
     * the 'Act' or 'Run' button gets pressed in the environment.
     */
    public void act() 
    {
    HitEnemy();
            if (Greenfoot.isKeyDown ("a"))
    {
        turn (-3);
    }
     if (Greenfoot.isKeyDown ("d"))
    {
        turn (3);
    }
     if (Greenfoot.isKeyDown ("s"))
    {
        move (-3);
    }  
     if (Greenfoot.isKeyDown ("w"))
    {
        move (3);
    }
    
    }  
    
   
    public void HitEnemy()
    {
         if (isTouching (Bee.class))
         {
             getWorld().addObject (new YouLose(), 400, 300);
             getWorld().removeObject (this);
             Greenfoot.stop();
            }
    }
    
}

//the  turtle or actor the gamer controls (just in case it has relevance to this but I dont think so.
Happycrusher764 Happycrusher764

2020/3/8

#
What im trying to do is to create an if statement in the act method of the world Level2, so that when the score reaches a certain number, it will switch to a new World, which will be the you win screen. However the score variable cannot be found... why? I also want it to work properly as in I only want it to do this if it reaches this score in Level2 world and not MyWorld world (Level1).
Happycrusher764 Happycrusher764

2020/3/8

#
Someone pls help me
Happycrusher764 Happycrusher764

2020/3/8

#
my assignment is due tomorrow so I really need help...
footpickle footpickle

2020/3/8

#
Where is the issue?
Happycrusher764 Happycrusher764

2020/3/8

#
It says variable not found
You need to login to post a reply.