Is it possible to animate the Projectile before it gets removed? I tried some things but it ended up all the same. The Projectile get removed first, so obviously it cant get animated.
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) /** * Write a description of class Projectile here. * * @author (your name) * @version (a version number or a date) */ public class Projectile extends Mover { /** * Act - do whatever the Projectile wants to do. This method is called whenever * the 'Act' or 'Run' button gets pressed in the environment. */ private int speed = 10; private int vSpeed = 0; private int accel = 1; private int jumpHeight= -20; private boolean jumping = false; int deathCount = 0; boolean isDying = false; private GreenfootImage run1 = new GreenfootImage("fireball1.png"); private GreenfootImage run2 = new GreenfootImage("fireball2.png"); private GreenfootImage run3 = new GreenfootImage("fireball3.png"); private GreenfootImage run4 = new GreenfootImage("fireball4.png"); private GreenfootImage run5 = new GreenfootImage("fireball5.png"); private GreenfootImage run6 = new GreenfootImage("fireball6.png"); private GreenfootImage run7 = new GreenfootImage("fireball7.png"); private GreenfootImage run8 = new GreenfootImage("fireball8.png"); private GreenfootImage run9 = new GreenfootImage("fireball9.png"); private GreenfootImage run10 = new GreenfootImage("Fireball_explosion1.png"); private GreenfootImage run11 = new GreenfootImage("Fireball_explosion2.png"); private GreenfootImage run12 = new GreenfootImage("Fireball_explosion3.png"); private GreenfootImage run13 = new GreenfootImage("Fireball_explosion4.png"); private GreenfootImage run14 = new GreenfootImage("Fireball_explosion5.png"); private GreenfootImage run15 = new GreenfootImage("Fireball_explosion6.png"); private GreenfootImage run16 = new GreenfootImage("Fireball_explosion7.png"); private GreenfootSound sound = new GreenfootSound("Projectile_sound.mp3"); private int frame = 1; private int animationCounter = 0; public Projectile() { } public void act() { if(isDying) { deathCount++; if(1 == deathCount) setImage("Fireball_explosion1.png"); else if(2 == deathCount) setImage("Fireball_explosion2.png"); else if(3 == deathCount) setImage("Fireball_explosion3.png"); else if(4 == deathCount) setImage("Fireball_explosion4.png"); else if(5 == deathCount) setImage("Fireball_explosion5.png"); else if(6 == deathCount) setImage("Fireball_explosion6.png"); else if(7 == deathCount) setImage("Fireball_explosion7.png"); else getWorld().removeObject(this); return; } move(10.0); moveAround(); animationCounter ++; remove(); } public void moveAround() { if(animationCounter % 8 == 0) animatefireball(); } public void turnToMouse() { turnTowards(15000,0); } public void animatefireball() { if (frame == 1) { setImage(run1); } else if(frame ==2) { setImage(run2); } else if(frame ==3) { setImage(run3); } else if(frame ==4) { setImage(run4); } else if(frame ==5) { setImage(run5); } else if(frame ==6) { setImage(run6); } else if(frame ==7) { setImage(run7); } else if(frame ==8) { setImage(run8); } else if(frame ==9) { setImage(run9); frame = 1; return; } frame ++; } public void remove() { Actor walls = getOneIntersectingObject(Ground.class); if(getX() <=1 || getX() >= getWorld().getWidth() -1) { getWorld().removeObject(this); } else if(walls != null) { deathCount = 0; isDying = true; getWorld().removeObject(this); sound.play(); } }