so i am trying to have a score counter on Level_1 and Level_2 but when you go to the next level the counter resets. it does work here but it just doesn't copy the amount from the past level. i dont know how to fix this so i would really like some help.
Level_1
Level_2
Kogel
Teller
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
/**
* Write a description of class Level_1 here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class Level_1 extends World
{
public static int AantalPuntenLevel1;
Teller teller = new Teller();
Harry harry = new Harry();
Barry barry = new Barry();
Groen groen = new Groen();
Level_2 level_2 = new Level_2();
private int Ronde_1Punten = 8;
public static boolean ronde_1;
public static int welke_avatar;
public static int xposSpeler;
public static int yposSpeler;
public static int Welk_Level;
Gezondheid gezondheid = new Gezondheid();
public static int TotGezondheid;
/**
* Constructor for objects of class MyWorld.
*
*/
public Level_1()
{
super(1366, 768, 1);
prepare();
teller = new Teller();
addObject(teller, 40, 340);
addObject(gezondheid, 555, 10);
}
public void act()
{
barry();
ronde_1();
ronde_1Klaar();
}
public Teller krijgTeller()
{
return teller;
}
public Gezondheid krijgGezondheid()
{
return gezondheid;
}
/**
* 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(barry,115,302);
addObject(harry, 781, 702);
barry_start();
}
public void fighter_avatar()
{
addObject(new Speler_Fighter(), 1000, 600);
welke_avatar = 1;
}
public void hunter_avatar()
{
addObject(new Speler_Hunter(), 1000, 600);
welke_avatar = 2;
}
public void tank_avatar()
{
addObject(new Speler_Tank(), 1000, 600);
welke_avatar = 3;
}
public void barry_start()
{
ronde_1 = false;
}
public void barry()
{
if (Greenfoot.mouseClicked(barry)) {
ronde_1 = true;
}
}
//alles wat er gebeurd tijdens ronde 1
public void ronde_1()
{
if (ronde_1 == true) {
if (Greenfoot.getRandomNumber(350) < 4) {
addObject(new Groen(), Greenfoot.getRandomNumber(1020) + 180 ,Greenfoot.getRandomNumber(410) + 160);
}
}
}
public void ronde_1Klaar()
{
if (teller.totaalAantalPunten >= Ronde_1Punten) {
ronde_1 = false;
ronde_1Einde();
/*if (getObjects(Groen.class) == null){
ronde_1Einde();
test1 = true;
}*/
}
}
//einde ronde
public void ronde_1Einde()
{
Welk_Level = 1;
Greenfoot.setWorld(level_2);
if (welke_avatar == 1){
level_2.fighter_avatar(xposSpeler, yposSpeler);
}
else if (welke_avatar == 2){
level_2.hunter_avatar(xposSpeler, yposSpeler);
}
else if (welke_avatar == 3){
level_2.tank_avatar(xposSpeler, yposSpeler);
}
}
}
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
/**
* Write a description of class Level_2 here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class Level_2 extends World
{
Teller teller = new Teller();
Barry barry = new Barry();
Harry harry = new Harry();
Groen groen = new Groen();
private int Ronde_2Punten = 8;
public static boolean ronde_2;
Slime_Koning slime_koning = new Slime_Koning();
public static int xposSpeler;
public static int yposSpeler;
Level_3 level_3 = new Level_3();
Gezondheid gezondheid = new Gezondheid();
/**
* Constructor for objects of class Level_2.
*
*/
public Level_2()
{
super(1366, 768, 1);
prepare();
teller = new Teller();
addObject(teller, 40, 340);
addObject(gezondheid, 555, 10);
}
public void act()
{
ronde_2();
barry();
ronde_2Klaar();
}
public Teller krijgTeller()
{
return teller;
}
public Gezondheid krijgGezondheid()
{
return gezondheid;
}
private void prepare()
{
addObject(barry,115,302);
addObject(harry, 781, 702);
barry_start();
}
public void fighter_avatar(int x, int y)
{
addObject(new Speler_Fighter(), x, y);
}
public void hunter_avatar(int x, int y)
{
addObject(new Speler_Hunter(), x, y);
}
public void tank_avatar(int x, int y)
{
addObject(new Speler_Tank(), x, y);
}
public void barry_start()
{
ronde_2 = false;
}
public void barry()
{
if (Greenfoot.mouseClicked(barry)) {
ronde_2 = true;
}
}
//alles wat er gebeurd tijdens ronde 2
public void ronde_2()
{
if (ronde_2 == true) {
if (Greenfoot.getRandomNumber(300) < 4) {
addObject(new Groen(), Greenfoot.getRandomNumber(1020) + 180 ,Greenfoot.getRandomNumber(410) + 160);
addObject(new Blauw(), Greenfoot.getRandomNumber(1020) + 180 ,Greenfoot.getRandomNumber(410) + 160);
}
}
}
public void ronde_2Klaar()
{
if (teller.totaalAantalPunten >= Ronde_2Punten) {
ronde_2 = false;
ronde_2Einde();
/*if (getObjects(Groen.class) == null){
ronde_1Einde();
}*/
}
}
//einde ronde (alles wordt klaargezet voor de volgende ronde)
public void ronde_2Einde()
{
Greenfoot.setWorld(level_3);
if (Level_1.welke_avatar == 1){
level_3.fighter_avatar(xposSpeler, yposSpeler);
}
else if (Level_1.welke_avatar == 2){
level_3.hunter_avatar(xposSpeler, yposSpeler);
}
else if (Level_1.welke_avatar == 3){
level_3.tank_avatar(xposSpeler, yposSpeler);
}
Level_1.Welk_Level = 2;
}
}
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
/**
* Write a description of class Kogel here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class Kogel extends beweeg
{
private Speler speler;
private int kogelSnelheid = 5;
private int richting;
boolean aanraak = false;
private int punten_groen = 2;
private int punten_blauw = 5;
/**
* Act - do whatever the Kogel wants to do. This method is called whenever
* the 'Act' or 'Run' button gets pressed in the environment.
*/
public void act()
{
geschoten();
move(kogelSnelheid);
}
public void geschoten()
{
int ypos = getY();
int xpos = getX();
if (ypos < 5 || xpos < 5 || ypos > 763 || xpos > 1361){
getWorld().removeObject(this);
}
else {
Actor groen = getOneIntersectingObject(Groen.class);
Actor blauw = getOneIntersectingObject(Blauw.class);
if (groen != null) {
updateScore(punten_groen);
getWorld().removeObject(groen);
getWorld().removeObject(this);
}
if (blauw != null) {
updateScore(punten_blauw);
getWorld().removeObject(blauw);
getWorld().removeObject(this);
}
}
}
public Kogel(int rot)
{
setRotation(rot);
if (rot > 0 && rot < 90) {
setRotation(0);
}
if (rot > 90 && rot < 180) {
setRotation(90);
}
if (rot > 180 && rot < 270) {
setRotation(180);
}
if (rot > 270 && rot < 360) {
setRotation(270);
}
}
public void updateScore(int aantal)
{
if (Level_1.Welk_Level == 0){
Level_1 level_1 = (Level_1) getWorld();
Teller teller = level_1.krijgTeller();
teller.bumpCount(aantal);
}
if (Level_1.Welk_Level == 1){
Level_2 level_2 = (Level_2) getWorld();
Teller teller = level_2.krijgTeller();
teller.bumpCount(aantal);
}
if (Level_1.Welk_Level == 2){
Level_3 level_3 = (Level_3) getWorld();
Teller teller = level_3.krijgTeller();
teller.bumpCount(aantal);
}
}
}
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
/**
* Write a description of class Teller here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class Teller extends Actor
{
public int totaalAantalPunten;
public Teller()
{
setImage(new GreenfootImage("0", 20, Color.WHITE, Color.BLUE));
}
public void bumpCount(int aantal)
{
totaalAantalPunten += aantal;
setImage(new GreenfootImage("" + totaalAantalPunten, 20, Color.WHITE, Color.BLACK));
}
}
