I am fairly new to Greenfoot and I am trying to make a turret that will attack the nearest unit.class within a set area, I know that the following will be used:
getObjectsInRange(_radius_, _cls_)
public class TurretPlatform extends Actor
{
public boolean deployed = false;
public void act()
{
buyTurret();
}
public void buyTurret()
{
if (Greenfoot.mouseClicked(this) == true && deployed == false)
{
getWorld().addObject(new Turret(), getX(), getY());
deployed = true;
}
}
}
//in Turret class
public void findClosestInRange()
{
List<unit> units = getObjectsInRange(radius, unit.class
if(units.size != 0)
{
int unitX = units.get(0).getX();
int unitY = units.get(0).getY();
turnTowards(unitX, unitY);
}
}//in Turret class
public void findClosestInRange()
{
List<unit> units = getObjectsInRange(radius, unit.class
if(units.size != 0)
{
int unitX = units.get(0).getX();
int unitY = units.get(0).getY();
turnTowards(unitX, unitY);
}
} //In world
//in act
public boolean getMoney()
{
if(Greenfoot.getMouseInfo() != null)
{
int X = Greenfoot.getMouseInfo().getX();
int Y = Greenfoot.getMouseInfo().getX();
List<TurretPlatform> platforms = getObjectsAt(X,Y);
if(platforms.size() != 0)
{
TurretPlatform platform = (TurretPlatform) platforms.get(0);
if(Money >= 10)
{
platform.buyTurret();
}
}
}
}
//not in act
public void countMoney(int dollars)
{
Money = Money + dollars;
}
//in TurretPlatform
//in act
public void changeMoney(int dollars)
{
MyWorld world = (MyWorld) getWorld();
world.countMoney(dollars);
} //In world
//in act
public boolean getMoney()
{
if(Greenfoot.getMouseInfo() != null)
{
int X = Greenfoot.getMouseInfo().getX();
int Y = Greenfoot.getMouseInfo().getX();
List<TurretPlatform> platforms = getObjectsAt(X,Y);
if(platforms.size() != 0)
{
TurretPlatform platform = (TurretPlatform) platforms.get(0);
if(Money >= 10)
{
platform.buyTurret();
}
}
}
}
//not in act
public void countMoney(int dollars)
{
Money = Money + dollars;
}
//in TurretPlatform
//in act
public void changeMoney(int dollars)
{
MyWorld world = (MyWorld) getWorld();
world.countMoney(dollars);
}