我正在研究利用二維空間中的精靈的遊戲,並試圖找出一個更好的方法來停止一個確切點。更好的方法來停止在一個確切點?
我已經得到了以下工作:
public void target(boolean hasTargetIn, Point target) {
if (hasTarget) {
deltaX = target.getX() - this.mPos.getX();
deltaY = target.getY() - this.mPos.getY();
mDirection = Math.atan2(deltaY,deltaX);
mVelocityX = Math.cos(mDirection) * mSpeed;
mVelocityY = Math.sin(mDirection) * mSpeed;
}
hasTarget = hasTargetIn;
}
public void move(Point target) {
if (mPos.getX() != target.getX() + 3 && mPos.getY() != target.getY() + 3) {
this.mPos.x += mVelocityX;
this.mPos.y += mVelocityY;
}
}
下面是我給的方法的參數:
sprite.target(true, new Point(700,305));
sprite.move(new Point(700,305));
但是這需要我來抵消target.getX( )在move()方法中爲3,因爲當精靈到達位置時X值在703和697之間擺動(因此它僅僅停留在抖動而沒有包含在move()方法中的邏輯)。有一個更好的方法來移動和停止在一個確切的點?