I have a game where a spaceship shoots a bullet and kills the enemy. Currently everything works apart from when the game needs to update the score i.e when a bullet hits a enemy the score goes up one. Here is the code for the bullet
import greenfoot.*;
/**
* @author Dafydd
* @version 1.0
*/
public class Bullet extends Animal
{
private int direction, speed;
private int counter = 0;
private Score score;
public Bullet(int dir, Score pointcounter)
{
direction = dir;
speed = 15;
score = pointcounter;
}
public void act()
{
setRotation(direction);
move(speed);
eat();
if( atWorldEdge() ) {
getWorld().removeObject(this);
}
}
public void eat()
{
if( canSee(Bady1.class) ) {
eat(Bady1.class);
score.add (1);
}
}
public void hitEnemy() {
Boss1 enemy = (Boss1) getOneObjectAtOffset(0, 0, Boss1.class);
if (enemy != null) {
enemy.setHealth(-1);
getWorld().removeObject(this);
score.add (1);
}
Boss2 enemy2 = (Boss2) getOneObjectAtOffset(0, 0, Boss2.class);
if (enemy != null) {
enemy.setHealth(-1);
getWorld().removeObject(this);
score.add (1);
}
Boss3 enemy3 = (Boss3) getOneObjectAtOffset(0, 0, Boss3.class);
if (enemy != null) {
enemy.setHealth(-1);
getWorld().removeObject(this);
score.add (1);
}
Boss4 enemy4 = (Boss4) getOneObjectAtOffset(0, 0, Boss4.class);
if (enemy != null) {
enemy.setHealth(-1);
getWorld().removeObject(this);
score.add (1);
}
FBoss enemy5 = (FBoss) getOneObjectAtOffset(0, 0, FBoss.class);
if (enemy != null) {
enemy.setHealth(-1);
getWorld().removeObject(this);
score.add (1);
}
}
}
