I need help with my counter, for some reason, it is not counting up when the bullet collides with the goal, it just stays at 0.
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
/**
* Write a description of class SimpleGame here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class SimpleGame extends World
{
/**
* Constructor for objects of class SimpleGame.
*
*/
Counter counter = new Counter();
private static final GreenfootImage bgImage = new GreenfootImage("Background.png");
public SimpleGame()
{
super(600, 400, 1, false);
setBackground(bgImage);
populate();
getCounter();
}
public void populate()
{
Player p = new Player();
addObject(p, 100, Greenfoot.getRandomNumber(200)+100);
goal g = new goal();
addObject(g, Greenfoot.getRandomNumber(100)+450, 200);
Counter c = new Counter();
addObject(c, 300, 50);
}
public Counter getCounter()
{
return counter;
}
}
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 Actor
{
/**
* Act - do whatever the Player 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.
movePlayer();
boundaries();
if(Greenfoot.isKeyDown("space"))
shoot();
}
public Player()
{
GreenfootImage image = getImage();
image.scale(image.getWidth() - 100, image.getHeight() - 100);
setImage(image);
}
public void movePlayer() //tests all movement keys and moves player
{
if(Greenfoot.isKeyDown("w"))
setLocation(getX(), getY() - 6);
if(Greenfoot.isKeyDown("s"))
setLocation(getX(), getY() + 6);
}
public void boundaries() //keeps player within boundaries
{
if(getY() > 380)
setLocation(getX(), getY() - 6);
if(getY() < 20)
setLocation(getX(), getY() + 6);
}
public void shoot()
{
getWorld().addObject(new bullet(), getX()+35, getY());
}
}import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
/**
* Write a description of class goal here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class goal extends Actor
{
/**
* Act - do whatever the goal wants to do. This method is called whenever
* the 'Act' or 'Run' button gets pressed in the environment.
*/
public boolean bool = false;
public int count = 0;
public int speed = 3;
public int scoreCount = 0;
public void act()
{
// Add your action code here.
moveg();
}
public goal()
{
GreenfootImage image = getImage();
image.scale(image.getWidth() - 100, image.getHeight() - 100);
setImage(image);
}
public void moveg()
{
setSpeed();
if(getDir())
setLocation(getX(), getY() + speed);
else
setLocation(getX(), getY() - speed);
}
public boolean getDir()
{
if(getY() < 0)
{
bool = true;
return(true);
}
else if(getY() > 380)
{
bool = false;
return(false);
}
return(bool);
}
public void count()
{
count++;
}
public void setSpeed()
{
count();
if(count == 1000)
speed = 4;
if(count == 2038)
speed = 0;
}
}import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
import java.lang.Math;
/**
* Write a description of class bullet here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class bullet extends Actor
{
/**
* Act - do whatever the bullet wants to do. This method is called whenever
* the 'Act' or 'Run' button gets pressed in the environment.
*/
public void act()
{
setLocation(getX() + 12, getY());
Actor player = getOneIntersectingObject(goal.class);
if(player!=null)
{
((SimpleGame)getWorld()).getCounter().addScore();
getWorld().removeObject(this);
}
}
public bullet()
{
GreenfootImage image = getImage();
image.scale(image.getWidth() - 130, image.getHeight() - 130);
setImage(image);
}
}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
{
public int score = 0;
public Counter()
{
updateCounter();
}
public void addScore()
{
score++;
updateCounter();
}
public void updateCounter()
{
setImage(new GreenfootImage("Your Score: " + score, 24, Color.WHITE, Color.BLACK));
}
}
