How do I make it so that once the rocket hits a meteor the game will end and switch to a gameover screen?
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
public class MyWorld extends World
{
public MyWorld()
{
// Create a new world with 600x400 cells with a cell size of 1x1 pixels.
super(600, 400, 1, false);
prepare();
}
public void act()
{
if(Greenfoot.getRandomNumber(15)<1)
{
addMeteor();
}
}
public void addMeteor()
{
addObject(new Meteors(),getWidth()-1,Greenfoot.getRandomNumber(getHeight()));
}
private void prepare()
{
Rocket Rocket = new Rocket();
addObject(Rocket, 100,200);
Rocket.setLocation(0,200);
}
}import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
public class Rocket extends Actor
{
private int xdistance=0,ydistance=0;
boolean fire = true;
private boolean toRemove=false;
public void addedToWorld(World MyWorld)
{
xdistance=getX();
ydistance=getY();
}
public void move()
{
double rx=xdistance-getX();
double ry=ydistance-getY();
double r=Math.sqrt(rx*rx+ry*ry);
int b=5;
int posx=0,posy=0;
if(r>b)
{
posx=(int)(getX()+b*rx/r);
posy=(int)(getY()+b*ry/r);
} else{
posx=xdistance;
posy=ydistance;
}
setLocation(posx,posy);
}
public void act()
{
if(Greenfoot.mouseMoved(null))
{
MouseInfo mouse=Greenfoot.getMouseInfo();
xdistance=mouse.getX();
ydistance=mouse.getY();
}
move();
fireLasars();
}
public void fireLasars()
{
if(Greenfoot.isKeyDown("a") && fire == true )
{
getWorld().addObject(new Lasars(),getX() - 30,getY());
fire = false;
}
else if (!Greenfoot.isKeyDown("a"))
{
fire = true;
}
}
}
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
public class Lasars extends Actor
{
public boolean toRemove=false;
public void act()
{
lasarMove();
removeLasars();
}
public void lasarMove()
{
setLocation(getX() + 5,getY());
}
public void removeLasars()
{
if (this.isAtEdge() == true)
{
World world;
world = getWorld();
world.removeObject(this);
return;
}
}
}import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
public class Obstacles extends Actor
{
protected boolean toRemove=false;
public void act()
{
}
public void move()
{
setLocation(getX()-10,getY());
Actor actor=getOneIntersectingObject(Rocket.class);
}
public void remove()
{
if (toRemove || isAtEdge())
{
World world;
world = getWorld();
world.removeObject(this);
return;
}
}
}import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
public class Meteors extends Obstacles
{
public void act()
{
move();
Hancur();
remove();
}
public void Hancur()
{
Actor lasars = getOneIntersectingObject(Lasars.class);
if(lasars != null)
{
getWorld().removeObject(lasars);
for(int i=0;i<10;i++)
{
int posx=-20+Greenfoot.getRandomNumber(40);
int posy=-20+Greenfoot.getRandomNumber(40);
getWorld().addObject(new Animate(getImage()),getX()+posx,getY()+posy);
}
getWorld().addObject(new Explosion(),getX(),getY());
toRemove=true;
}
}
}
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
public class Explosion extends Actor
{
private int time = 5;
public void addedToWorld(World MyWorld)
{
GreenfootImage image=new GreenfootImage(100,100);
image.setColor(new Color(255,255,0,180));
image.fillOval(0,0,image.getWidth()-1,image.getHeight()-1);
image.fillOval(20,20,image.getWidth()-41,image.getHeight()-41);
setImage(image);
time=5;
}
public void act()
{
if(time>0) time--;
else getWorld().removeObject(this);
}
}import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
public class Animate extends Actor
{
public int xaxisV=0, yaxisV=0,rotation=0;
public Animate(GreenfootImage img)
{
GreenfootImage image =new GreenfootImage(10,10);
image.drawImage(img,-Greenfoot.getRandomNumber(img.getWidth()),-Greenfoot.getRandomNumber(img.getHeight()));
setImage(image);
}
public void addedToWorld(World MyWorld)
{
xaxisV=-5+Greenfoot.getRandomNumber(10);
yaxisV=-5+Greenfoot.getRandomNumber(10);
rotation=-10+Greenfoot.getRandomNumber(20);
if(xaxisV==0)
{
xaxisV=1;
}
if(yaxisV==0)
{
yaxisV=1;
}
}
public void act()
{
setLocation(getX()+xaxisV,getY()+yaxisV);
setRotation(getRotation()+rotation);
if(getX()<-200 || getY()<-200 || getX()>getWorld().getWidth()+200 || getY()>getWorld().getHeight()+200)
{
getWorld().removeObject(this);
}
}
}
