Hi, I have a world where you can score points to kill someone. And if I die I set a new world: GameOver. But how do I set the score from the world where you can score points (in this case the world: Alien_Attack) to the GameOver world?
This are my codes:
Alien_Attack:
this is the code of the counter:
And this is the code of the GameOver:
Can someone please help me?
public class Alien_Attack extends World { public Speler mainSpeler = new Speler(); int EnemyCounter; private int timer = 0; //timer instellen int x = Greenfoot.getRandomNumber(getWidth()); //variable x instellen op random breedte int y = Greenfoot.getRandomNumber(getHeight()); //variable y instellen op random hoogte Counter counter = new Counter(); public Alien_Attack() { super(1150, 610, 1); //grootte wereld instellen addObject(mainSpeler, getWidth()/2, getHeight()/2); addObject(counter, 100, 40); } public Counter getCounter() { return counter; //het terugkeren van counter } public void act() { EnemyCounter++; //enemycounter laten lopen if(getObjects(Enemy.class).size() < 7 && EnemyCounter%100 == 0) //als er minder dan 7 enemies zijn dan... { SpawnEnemy(); //Voer dan SpawnEnemy uit } timer++; // timer laten lopen if (timer == 1650) //als de timer 1650 is (staat ongeveer gelijk aan 30 secondes) { Greenfoot.setWorld(new TimeUpAlien()); //open dan nieuwe wereld: TimeUpAlien } Greenfoot.setWorld(new GameOverAlien()); //open dan een niewe wereld: GameOverAlien } } public void SpawnEnemy() //spawn plekken voor de enemies bepalen { addObject(new Enemy(), getWidth(), 0); //helemaal rechtsboven een Enemy toevoegen addObject(new Enemy(), getWidth(), getHeight()); //rechtsonder een Enemy toevoegen addObject(new Enemy(), getWidth(), getHeight()/2); //rechtsmidden een Enemy toevoegen addObject(new Enemy(), getWidth(), getHeight()/4); //rechts kwart naar beneden (van bovenaan gezien) een Enemy toevoegen addObject(new Enemy(), getWidth(), getHeight()*3/4); //rechts kwart naar boven (van onderaan gezien) een Enemy toevoegen addObject(new Enemy(), getWidth(), getHeight()/8); //rechts een achtste naar beneden (van bovenaan gezien) een Enemy toevoegen addObject(new Enemy(), getWidth(), getHeight()*7/8); //rechts een achtste naar boven (van onderaan gezien) een Enemy toevoegen addObject(new Enemy(), getWidth()*7/8, 0); addObject(new Enemy(), getWidth()*7/8, getHeight()); } }
public class Counter extends Actor { int score = 0; //variable score gelijkstellen aan 0 public void act() { setImage(new GreenfootImage("Score : " + score, 24, Color.WHITE,Color.BLACK)); //tekst invoegen } public void addScore() { score++; //score laten optellen } }
public class GameOverAlien extends World { Counter counter = new Counter(); //counter betekent nu nieuwe Counter public GameOverAlien() { super(1150, 610, 1); //grootte van wereld instellen showText("GAME OVER", getWidth()/2, 100); //tekst game over invoegen addObject(counter, getWidth()/2, 200); //counter standaard toevoegen aan wereld showText("PRESS 'R' TO RESTART THE GAME", getWidth()/2, 400); //tekst invoegen showText("PRESS 'ENTER' GO BACK TO HOME", getWidth()/2, 450); // tekst invoegen } public void act() { if(Greenfoot.isKeyDown("r")) //als r wordt ingedrukt... { Greenfoot.setWorld(new Alien_Attack()); //open dan een nieuwe alien attack } if(Greenfoot.isKeyDown("enter")) //als enter wordt ingedrukt... { Greenfoot.setWorld(new Home()); //open dan nieuwe home } } }