I want my Screens (nuke/freeze/fasterShooting) removed after the timer runs down. Why aren't they removed?
Code below
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 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 static double enemieskilled;
public static int b;
int c;
int timernuke;
int timerfreeze;
int timershooting;
public void act()
{
if (timernuke > 0)
{
timernuke--;
if (timernuke == 0)
{
getWorld().removeObjects(getWorld().getObjects(NukeScreen.class));
}
}
if (timerfreeze > 0)
{
timerfreeze--;
if (timernuke == 0)
{
getWorld().removeObjects(getWorld().getObjects(FreezeScreen.class));
}
}
if (timershooting > 0)
{
timershooting--;
if (timershooting == 0)
{
getWorld().removeObjects(getWorld().getObjects(FasterShootingScreen.class));
}
}
move (10);
if (isTouching(Border.class))
{
removeTouching (Bacteria.class);
getWorld().removeObject(this);
}
else if (isTouching(Bacteria.class))
{
removeTouching (Bacteria.class);
getWorld().removeObject(this);
enemieskilled++;
}
else if (isTouching(Virus.class))
{
removeTouching (Virus.class);
enemieskilled++;
if(Greenfoot.getRandomNumber(100) < 100)
{
c = Greenfoot.getRandomNumber(3);
switch(c)
{
case 0:
nuke();
break;
case 1:
Player.fasterShooting();
fasterShootingScreen();
break;
case 2:
MyWorld.freezeTimer = MyWorld.freezeTimer + 200;
freezeScreen();
}
}
getWorld().removeObject(this);
}
else if (isAtEdge())
{
getWorld().removeObject(this);
}
}
public void nuke()
{
if (getWorld() != null)
{
getWorld().removeObjects(getWorld().getObjects(Bacteria.class));
getWorld().removeObjects(getWorld().getObjects(Virus.class));
NukeScreen nukescreen1 = new NukeScreen ();
getWorld().addObject(nukescreen1, 350, 50);
timernuke = timernuke + 50;
}
}
public void freezeScreen()
{
FreezeScreen freezescreen1 = new FreezeScreen ();
getWorld().addObject(freezescreen1, 450, 45);
timerfreeze = timerfreeze + 50;
}
public void fasterShootingScreen()
{
FasterShootingScreen fastershooting = new FasterShootingScreen ();
getWorld().addObject(fastershooting, 250, 50);
timershooting = timershooting + 50;
}
}


