i am trying to make a ascoreboard that counts up whenever i shoot a "robber" and count down everytime a robber collects a "moneyBag". i have used the same code i have used on other games but it still wont work.
Bullet code:
Robber Code:
Player Code:
ScoreBoard Code:
thanks in advance.
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
/**
* Write a description of class Bullet here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class Bullet extends bullets
{
public int speed = 10;
int score = 0;
/**
* Act - do whatever the missile wants to do. This method is called whenever
* the 'Act' or 'Run' button gets pressed in the environment.
*/
public void act()
{
move(15);
Actor Robber = getOneIntersectingObject(Robber.class);
getWorld().showText("robbers killed: " + score, 96, 46);
if(isTouching(Robber.class))
{
World myWorld = getWorld();
getWorld().removeObject(Robber);
getWorld().addObject(new Robber(), Greenfoot.getRandomNumber(getWorld().getWidth()), Greenfoot.getRandomNumber(getWorld().getHeight()));
Background background =(Background)myWorld;
scoreboard scoreboard = Background.getscoreboard();
scoreboard.addScore();
getWorld().removeObject(this);
}
}
}
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
/**
* Write a description of class Robber here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class Robber extends people
{
int score = 0;
/**
* Act - do whatever the man1 wants to do. This method is called whenever
* the 'Act' or 'Run' button gets pressed in the environment.
*/
public void act()
{
// Add your action code here.
move(Greenfoot.getRandomNumber(10));
turn(10 - Greenfoot.getRandomNumber(20));
getWorld().showText("Money Bags lost: " + score, 296, 46);
if(getX() <=5 || getX() >= getWorld().getWidth() - 5)
{
turn(90);
}
if(getY() <=5 || getY() >= getWorld().getHeight() - 5)
{
turn(90);
}
Actor MoneyBag;
MoneyBag = getOneObjectAtOffset(0,0,MoneyBag.class);
if(MoneyBag != null)
{
World myWorld = getWorld();
myWorld.removeObject(MoneyBag);
Background background =(Background)myWorld;
scoreboard scoreboard = background.getScoreboard();
scoreboard.SubtractScore();
getWorld().addObject(new MoneyBag(), Greenfoot.getRandomNumber(getWorld().getWidth()), Greenfoot.getRandomNumber(getWorld().getHeight()));
}
Actor Player;
Player = getOneObjectAtOffset(0,0,Player.class);
if(isTouching(Player.class))
{
World world = getWorld();
if (world != null) {
world.removeObjects(world.getObjects(null));
world.setBackground("game_over.png");
}
}
}
}import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
/**
* Write a description of class player here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class Player extends people
{
int score =0;
private final int reloadTime = 300,
maxShots = 6;
private int reloadTimer = 100,
shotsLeft = maxShots;
private boolean shooting = false;
/**
* Act - do whatever the robot wants to do. This method is called whenever
* the 'Act' or 'Run' button gets pressed in the environment.
*/
public void act()
{
getWorld().showText("Robbers Killed: " + score, 96, 46);
if(Greenfoot.isKeyDown("left"))
{
turn(-5);
}
if(Greenfoot.isKeyDown("right"))
{
turn(5);
}
if(Greenfoot.isKeyDown("up"))
{
move(5);
}
if(Greenfoot.isKeyDown("down"))
{
move(-5);
}
if (reloadTimer > 50)
{
if (--reloadTimer == 50) shotsLeft = maxShots;
else return;
}
if (!shooting && Greenfoot.isKeyDown("space"))
{
Actor Bullet = new Bullet();
getWorld().addObject(Bullet, getX(), getY());
Bullet.setRotation(getRotation());
shooting = true;
if (--shotsLeft == 0 ) reloadTimer = reloadTime;
}
else if (!Greenfoot.isKeyDown("space")) shooting = false;
}
}import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
/**
* Write a description of class scoreboard here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class scoreboard extends display
{
int score = 0;
/**
* Act - do whatever the scoreboard 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, 36, Color.BLACK, Color.WHITE));
}
public void SubtractScore(){
score--;
}
public void addScore(){
score++;
}
}
