39 lines
1.2 KiB
Java
39 lines
1.2 KiB
Java
public class MoveToCenter extends AbstractStrategy{
|
|
@Override
|
|
protected boolean isTargetDestination(){
|
|
var objParams = getObjectParameters();
|
|
if(objParams == null)
|
|
return false;
|
|
return objParams.getObjectMiddleHorizontal() <= getFieldWidth() / 2 &&
|
|
objParams.getObjectMiddleHorizontal() + getStep() >= getFieldWidth() / 2 &&
|
|
objParams.getObjectMiddleVertical() <= getFieldHeight() / 2 &&
|
|
objParams.getObjectMiddleVertical() + getStep() >= getFieldHeight() / 2;
|
|
}
|
|
|
|
@Override
|
|
protected void moveToTarget() {
|
|
ObjectParameters objParams = getObjectParameters();
|
|
if (objParams == null) {
|
|
return;
|
|
}
|
|
var diffX = objParams.getObjectMiddleHorizontal() - getFieldWidth() / 2;
|
|
if (Math.abs(diffX) > getStep()) {
|
|
if (diffX > 0) {
|
|
moveLeft();
|
|
}
|
|
else {
|
|
moveRight();
|
|
}
|
|
}
|
|
var diffY = objParams.getObjectMiddleVertical() - getFieldHeight() / 2;
|
|
if (Math.abs(diffY) > getStep()) {
|
|
if (diffY > 0) {
|
|
moveUp();
|
|
}
|
|
else {
|
|
moveDown();
|
|
}
|
|
}
|
|
}
|
|
}
|