I need help with getting the counter/ score variable to work in the world class. It says that the score variable cannot be found.
This world is where I want to put an if statement in the void act. However it cannot be found
That was the MyWorld world (Level1).
This is the strawberry that affects the score variable.
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()
{
}
}
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
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);
}
}
}
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.