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

2016/11/15

Help with simple animating...

DukeFutzwillus DukeFutzwillus

2016/11/15

#
I am not sure why this wouldn't work but if someone could look at it and tell me if there is something wrong here I would much appreciate it.
public class CavernTank extends Actor
{
    private GreenfootImage image2; 
    private GreenfootImage image3; 
    private GreenfootImage image1; 
    
    
    /**
     * Act - do whatever the CavernTank wants to do. This method is called whenever
     * the 'Act' or 'Run' button gets pressed in the environment.
     */
    public CavernTank()
    {
      image2 = new GreenfootImage("CavernTank_1.png");
      image3 = new GreenfootImage("CavernTank_2.png");
      image1 = new GreenfootImage("CavernTank_0.png");
      setImage(image2);
      
    }
    public void act() 
    {
      animate();  
        
    }

    public void animate()
    {
          if (getImage() == image2)
    {
        move(1);
        setImage(image3);
    }
    if  (getImage() == image3)
    {
       setImage(image1);
    }
    if  (getImage() == image1)
    {
       setImage(image2);
    }  
}
    }
nathen nathen

2016/11/15

#
try this
  private GreenfootImage image1 = new GreenfootImage ("bug2.png"); 
    private GreenfootImage image2 = new GreenfootImage ("bug22flap.png");
           private int speed = 2;
    
    
     int counter =0;
    
    
    public void act()
    {
        
        
        setLocation ( getX() + speed, getY() );
        counter++;
        if(counter % 45 ==0){
            if (getImage().equals(image1)){
            setImage (image2);
          }
          else{
            
            
                setImage (image1);
        
          }
        }
nathen nathen

2016/11/15

#
replace "bug" with your images
DukeFutzwillus DukeFutzwillus

2016/11/16

#
What does the % do in this?
danpost danpost

2016/11/16

#
DukeFutzwillus wrote...
What does the % do in this?
It perform the modulus operation -- gets the remainder after dividing by some number. Same as:
int remainder = counter % 45;
// same as
int remainder = counter - 45 * (int) (counter / 45);
However 45 frames is quite a long time for one image with a scenario running at average speed.
DukeFutzwillus DukeFutzwillus

2016/11/22

#
Oh that is helpful actually
You need to login to post a reply.