In my game the player has a certain amount of lives that are recorded using a counter. How do I make the animation stop when the life count reaches 0?
if (counter.getValue()==0) Greenfoot.stop();
int value = ((Counter)getWorld().getObjects(Counter.class).get(0)).getValue();
import greenfoot.*; // (World, Actor, GreenfootImage, and Greenfoot)
import java.awt.Color;
import java.awt.Graphics;
/**
*LifeCounter that displays a number with a text prefix.
*
* @author Michael Kolling
* @version 1.0.2
*/
public class LifeCounter extends Actor
{
private static final Color textColor = new Color(0, 0, 0);
private int value = 0;
private int target = 0;
private String text;
private int stringLength;
public LifeCounter()
{
this("");
}
public LifeCounter(String prefix)
{
text = prefix;
stringLength = (text.length() + 2) * 10;
setImage(new GreenfootImage(stringLength, 16));
GreenfootImage image = getImage();
image.setColor(textColor);
updateImage();
}
public LifeCounter(String prefix, int lives)
{
text = prefix;
stringLength = (text.length() + 2) * 10;
target = lives;
value = lives;
setImage(new GreenfootImage(stringLength, 16));
GreenfootImage image = getImage();
image.setColor(textColor);
updateImage();
}
public void act()
{
if(value < target) {
value++;
updateImage();
}
else if(value > target) {
value--;
updateImage();
}
}
public void add(int score)
{
target += score;
}
public void subtract(int score)
{
target -= score;
}
public int getValue()
{
return value;
}
public int getTarget()
{
return target;
}
/**
* Make the image
*/
private void updateImage()
{
GreenfootImage image = getImage();
image.clear();
image.drawString(text + value, 1, 12);
}
}public void lookForCrab()
{
if ( canSee(Crab.class) )
{
eat(Crab.class);
changeImage();
crabLives.subtract(1);
Greenfoot.playSound("au.wav");
if (!getWorld().getObjects(LifeCounter.class).isEmpty())
{
((LifeCounter) getWorld().getObjects(LifeCounter.class).get(0)).subtract(1);
if (LifeCounter.getValue()==0)
{Greenfoot.stop();}
}
}
}