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

40 lines
1.1 KiB
Java

public class MoveToCenter extends AbstractStrategy{
@Override
protected boolean isTargetDestination() {
var objParams = GetObjectParameters();
if (objParams == null ) {
return false;
}
return
Math.abs(objParams.ObjectMiddleHorizontal() - GetFieldWidth() / 2) <= GetStep()
&& Math.abs(objParams.ObjectMiddleVertical() - GetFieldHeight() / 2) <= GetStep();
}
@Override
protected void MoveToTarget() {
var objParams = GetObjectParameters();
if(objParams == null) {
return;
}
var diffX = objParams.ObjectMiddleHorizontal() - GetFieldWidth() / 2;
if (Math.abs(diffX) > GetStep()) {
if (diffX > 0)
{
MoveLeft();
}
else
{
MoveRight();
}
}
var diffY = objParams.ObjectMiddleVertical() - GetFieldHeight() / 2;
if (Math.abs(diffY) > GetStep()) {
if (diffY > 0) {
MoveUp();
}
else {
MoveDown();
}
}
}
}