import greenfoot.*;
import java.util.Random;
| A pile of food. The pile consists initially of 100 crumbs of food.
|
| @author Michael Kölling
| @version 1.1
|
public class Food
extends Actor
{
private static final int SIZE = 30;
private static final int HALFSIZE = SIZE / 2;
private static final Color color1 = new Color(160, 200, 60);
private static final Color color2 = new Color(80, 100, 30);
private static final Color color3 = new Color(10, 50, 0);
private static final Random randomizer = new Random();
private int crumbs = 100;
| Create a pile of food with an image depicting the amount.
|
public Food()
{
updateImage();
}
| Remove some food from this pile of food.
|
public void takeSome()
{
crumbs = crumbs - 3;
if (crumbs <= 0) {
getWorld().removeObject(this);
}
else {
updateImage();
}
}
| Update the image
|
private void updateImage()
{
GreenfootImage image = new GreenfootImage(SIZE, SIZE);
for (int i = 0; i < crumbs; i++) {
int x = randomCoord();
int y = randomCoord();
image.setColorAt(x, y, color1);
image.setColorAt(x + 1, y, color2);
image.setColorAt(x, y + 1, color2);
image.setColorAt(x + 1, y + 1, color3);
}
setImage(image);
}
| Returns a random number relative to the size of the food pile.
|
private int randomCoord()
{
int val = HALFSIZE + (int) (randomizer.nextGaussian() * (HALFSIZE / 2));
if (val < 0)
return 0;
if (val > SIZE - 2)
return SIZE - 2;
else
return val;
}
}
top,
use,
map,
class Food
. Food
. takeSome
. updateImage
. randomCoord
55 neLoCode
+ 7 LoComm