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)