This site requires JavaScript, please enable it in your browser!
Greenfoot back
Genota
Genota wrote ...

2021/2/21

Projectile Animation

Genota Genota

2021/2/21

#
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();
        }
     }
danpost danpost

2021/2/21

#
Remove line 137.
You need to login to post a reply.