Hello. My counter works in my world but when it changes worlds from MyWorld to Level2 it resets the score back to 0. how can I fix this? even if it is manually setting the score to 5 when it is set to Level2. Please help with this. Ik i have asked many questions today but I'm trying to improve my game as much as possible for the due date tomorrow. The code i think may be relevant is below:
That above is my Level2 Code.
That above is my MyWorld (Level1) world.
That is my Counter actor.
Strawberries. the thing that increases the score if collected by turtle in the game.
That above is my turtle.
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()
{
addObject(new Strawberry(), Greenfoot.getRandomNumber(775), Greenfoot.getRandomNumber(575));
addObject(new Strawberry(), Greenfoot.getRandomNumber(775), Greenfoot.getRandomNumber(575));
addObject(new Strawberry(), Greenfoot.getRandomNumber(775), Greenfoot.getRandomNumber(575));
addObject(new Strawberry(), Greenfoot.getRandomNumber(775), Greenfoot.getRandomNumber(575));
addObject(new Strawberry(), Greenfoot.getRandomNumber(775), Greenfoot.getRandomNumber(575));
addObject(new Turtle(), Greenfoot.getRandomNumber(775), Greenfoot.getRandomNumber(575));
addObject(new Bee(), Greenfoot.getRandomNumber(775), Greenfoot.getRandomNumber(575));
addObject(new Bee(), Greenfoot.getRandomNumber(775), Greenfoot.getRandomNumber(575));
Counter counter = new Counter();
addObject(counter,146,37);
Counter counter2 = new Counter();
addObject(counter2,56,38);
counter2.setLocation(1128,394);
removeObject(counter2);
}
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);
}
}
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++;
}
}
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();
}
}
}
//turtle. no explanation needed...
