I am programming a game and I want to show the final score of the game but in a different world, I am not sure how to do it..
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;
String str = "Score: ";
/**
* Act - do whatever the Counter wants to do. This method is called whenever
* the 'Act' or 'Run' button gets pressed in the environment.
*/
public Counter(){
setImage(new GreenfootImage(str+ score,30,Color.BLUE,null));
}
public void act()
{
// Add your action code here.
setImage(new GreenfootImage(str+ score,30,Color.BLUE,null));
}
public void addScore()
{
score++;
}
}
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
{
private static final String bgImageName = "space1.jpg";
private static final int picHeight = (new GreenfootImage(bgImageName)).getHeight();
private GreenfootImage bgImage, bgBase;
private int scrollPosition = 0;
HealthBar healthbar = new HealthBar();
int enemyCount = 0;
int enemy2Count = 0;
int enemy3Count = 0;
int healthCount = 0;
int projectile2Spawn = 0;
Counter counter = new Counter();
GreenfootSound bgm = new GreenfootSound("bgm1.mp3");
/**
* Constructor for objects of class MyWorld.
*
*/
public MyWorld()
{
// Create a new world with 600x400 cells with a cell size of 1x1 pixels.
super(600, 400, 1);
setBackground(bgImageName);
bgImage = new GreenfootImage(getBackground());
bgBase = new GreenfootImage(getHeight(), picHeight);
prepare();
}
/**
* Prepare the world for the start of the program.
* That is: create the initial objects and add them to the world.
*/
public Counter getCounter()
{
return counter;
}
public HealthBar getHealthBar()
{
return healthbar;
}
public void act(){
paint(scrollPosition);
if(Greenfoot.mouseClicked(this))
{
bgm.stop();
}
else if(!bgm.isPlaying())
{
bgm.setVolume(15);
bgm.playLoop();
}
spawnEnemy1();
spawnEnemy2();
spawnEnemy3();
spawnHealth();
spawnProjectile2();
}
private void paint(int position)
{
int scrollAmt = 5;
GreenfootImage bg = new GreenfootImage(getBackground());
getBackground().drawImage(bg, 0, scrollAmt); // scroll image down
getBackground().drawImage(bg, 0, scrollAmt-getHeight());
}
public void spawnProjectile2()
{
projectile2Spawn++;
if(projectile2Spawn>2000)
{
addObject(new Projectile2(), Greenfoot.getRandomNumber(600),0);
projectile2Spawn = 0;
}
}
public void spawnHealth()
{
healthCount++;
if(healthCount>1000)
{
addObject(new HealthUp(), Greenfoot.getRandomNumber(600),0);
healthCount = 0;
}
}
public void spawnEnemy1(){
enemyCount++;
if(enemyCount>80)
{
addObject(new Enemy1(), Greenfoot.getRandomNumber(600),0);
enemyCount = 0;
}
}
public void spawnEnemy2(){
if(counter.score >= 50)
{
enemy2Count++;
if(enemy2Count>200)
{
addObject(new Enemy2(), Greenfoot.getRandomNumber(600),0);
enemy2Count = 0;
}
}
}
public void spawnEnemy3(){
if(counter.score >=100)
{
enemy3Count++;
if(enemy3Count>350)
{
addObject(new Enemy3(), Greenfoot.getRandomNumber(600),0);
enemy3Count =0;
}
}
}
//spawn enemy3
private void prepare()
{
Player player = new Player();
addObject(player,241,343);
player.setLocation(295,372);
addObject(counter,25,25);
counter.setLocation(506,379);
addObject(healthbar, 88, 378);
}
}
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
/**
* Write a description of class Enemy1 here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class Enemy1 extends Enemies
{
/**
* Act - do whatever the Enemy1 wants to do. This method is called whenever
* the 'Act' or 'Run' button gets pressed in the environment.
*/
int enemyHealth = 2;
public Enemy1()
{
GreenfootImage image = getImage();
image.scale(image.getWidth()-2, image.getHeight()-2);
setImage(image);
setRotation(0);
}
public void act()
{
// Add your action code here.
EnemyDirection();
hitByProjectile();
}
public void EnemyDirection()
{
setLocation(getX(),getY()+1);
if(getY()==70)
{
enemyFire();
}
}
public void removeEnemy(){
if(getY()==399){
getWorld().removeObject(this);
}
}
public void hitByProjectile()
{
Actor playerProjectile = getOneIntersectingObject(playerProjectile.class);
Actor playerProjectile2 = getOneIntersectingObject(playerProjectile2.class);
if(playerProjectile != null)
{
getWorld().removeObject(playerProjectile);
enemyHealth--;
}else if(playerProjectile2 != null)
{
getWorld().removeObject(playerProjectile2);
enemyHealth = enemyHealth-2;
}
if(enemyHealth == 0)
{
getScoreCounter();
getWorld().removeObject(this);
}
else if(getY()==399){
World world = getWorld();
MyWorld myWorld = (MyWorld)world;
HealthBar healthbar = myWorld.getHealthBar();
healthbar.loseHealth();
getWorld().removeObject(this);
}
}
public void getScoreCounter()
{
World world = getWorld();
MyWorld myWorld = (MyWorld)world;
Counter counter =myWorld.getCounter();
counter.addScore();
}
public void enemyFire()
{
getWorld().addObject(new enemyProjectile(),getX(),getY()+5);
}
}
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
/**
* Write a description of class GameOver here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class GameOver extends World
{
/**
* Constructor for objects of class GameOver.
*
*/
public GameOver()
{
// Create a new world with 600x400 cells with a cell size of 1x1 pixels.
super(600, 400, 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()
{
loseImg loseImg = new loseImg();
addObject(loseImg,289,189);
}
}