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; } }