import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
public class MyWorld extends World
{
Counter counter = new Counter();
public MyWorld()
{
super(900, 600, 1);
prepare();
}
public Counter getCounter()
{
return counter;
}
private void prepare()
{
Rocket rocket = new Rocket();
addObject(rocket,91,299);
Ball [] ball = new Ball[7];
for(int i=0; i<ball.length; i++)
{
ball[i] = new Ball();
int ballX = Greenfoot.getRandomNumber(getWidth());
int ballY = Greenfoot.getRandomNumber(getHeight());
addObject(ball[i], ballX, ballY);
}
addObject(counter, 38, 49);
}
}
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
public class Ball extends Actor
{
public void act()
{
move(5);
}
public void move()
{
int x = getX();
int y = getY();
if(Greenfoot.isKeyDown("right"))x++;
if(Greenfoot.isKeyDown("left"))x--;
if(Greenfoot.isKeyDown("up"))y--;
if(Greenfoot.isKeyDown("down"))y++;
setLocation(x,y);
((MyWorld)getWorld()).getCounter().addScore();
}
}
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
public class Counter extends Actor
{
int score = 0;
public Counter()
{
updateImage();
}
public void updateImage()
{
setImage(new GreenfootImage("Score :" + score, 20, Color.WHITE, Color.BLACK));
}
public void addScore()
{
score++;
updateImage();
}
}import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
public class Fire extends Actor
{
public void act()
{
move(10);
Actor ball = getOneIntersectingObject(Ball.class);
if (ball!=null)
{
World myWorld = getWorld();
myWorld.removeObject(ball);
myWorld.removeObject(this);
}
else if (isAtEdge()!=false)
{
World myWorld = getWorld();
myWorld.removeObject(this);
}
}
}import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
public class Rocket extends Actor
{
Fire fire = new Fire();
public void act()
{
if(Greenfoot.isKeyDown("left"))
{
setLocation(getX()-5, getY());
}
if(Greenfoot.isKeyDown("right"))
{
setLocation(getX()+5, getY());
}
if(Greenfoot.isKeyDown("up"))
{
setLocation(getX(), getY()-5);
}
if(Greenfoot.isKeyDown("down"))
{
setLocation(getX(), getY()+5);
}
fire();
fireOnCommand();
}
private void fire()
{
Actor ball = getOneIntersectingObject(Ball.class);
if(ball != null)
{
World myWorld = getWorld();
myWorld.removeObject(this);
}
}
public void fireOnCommand()
{
if(Greenfoot.isKeyDown("a"))
{
World myWorld = getWorld();
myWorld.addObject(fire, 0, 0);
fire.setLocation(getX(), getY());
}
}
}

