2023-12-28 20:56:39 +04:00

32 lines
1006 B
Java

public class MoveToBorder extends AbstractStrategy{
@Override
protected boolean isTargetDestination() {
var objParams = GetObjectParameters();
if (objParams == null ) {
return false;
}
return
objParams.RightBorder() <= GetFieldWidth() &&
objParams.RightBorder() + GetStep() >= GetFieldWidth()&&
objParams.DownBorder() <= GetFieldHeight()&&
objParams.DownBorder() + GetStep() >= GetFieldHeight();
}
@Override
protected void MoveToTarget() {
var objParams = GetObjectParameters();
if(objParams == null) {
return;
}
var diffX = objParams.RightBorder() - GetFieldWidth();
if (Math.abs(diffX) > GetStep())
{
MoveRight();
}
var diffY = objParams.DownBorder() - GetFieldHeight();
if (Math.abs(diffY) > GetStep())
{
MoveDown();
}
}
}