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