39 lines
1.2 KiB
Java
Raw Normal View History

2023-11-04 01:54:14 +04:00
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;
}
2023-11-04 02:32:04 +04:00
2023-11-04 01:54:14 +04:00
@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();
}
}
}
}