Did you try comparing getX() and getY() the the top and left coordinates of the world?
public Message resultMessage, infoMessage;
resultMessage = new Message("");
addObject(resultMessage, 750, 550); // wherever
infoMessage = new Message("");
addObject(infoMessage, 150, 550); // wherever
infoMessage.updateInfo();
// add the new 'updateInfo' method to the world class
public void updateInfo()
{
Cannon cannon = getObjects(Cannon.class).get(0);
infoMessage.setText("Angle: " + (30 + cannon.angle) + "\nPower: " + cannon.power);
}// in the Cannon class when power or angle is changed ((WorldName) getWorld().updateInfo();
if (getX() == 0) // and if (getY() == 0)
import greenfoot.*;
public class bg extends World
{
int minX = 300;
int maxX = 750;
int minY = 100;
int maxY = 400;
public Message resultMessage, infoMessage;
public bg()
{
super(800, 500, 1);
addObject(new Canon(), 50, 460);
resultMessage = new Message("");
addObject(resultMessage, 750, 550); // wherever
infoMessage = new Message("");
addObject(infoMessage, 150, 550); // wherever
infoMessage.updateInfo();
// add the new 'updateInfo' method to the world class
}
public void act()
{
checkTarget();
}
public void updateInfo()
{
Cannon cannon = getObjects(Cannon.class).get(0);
infoMessage.setText("Angle: " + (30 + cannon.angle) + "\nPower: " + cannon.power);
}
private void checkTarget()
{
if (getObjects(Target.class).isEmpty())
{
int x = minX + Greenfoot.getRandomNumber(maxX - minX);
int y = minY + Greenfoot.getRandomNumber(maxY - minY);
addObject(new Target(), x, y);
}
}
}
if (getX() == 0) // and if (getY() == 0)