私は、2次元空間でスプライトを活用するゲームに取り組んでいます。私は、正確な位置で停止するより良い方法を見つけようとしています。正確な点で停止する方がいいですか?
私は仕事に以下を得ている:(
sprite.target(true, new Point(700,305));
sprite.move(new Point(700,305));
しかし、これはtarget.getXを相殺するために私を必要とします。ここでは
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;
}
}
は、私はメソッドに与えている引数です)をmove()メソッドで3回増やすと、X値が703〜697の間で移動し、スプライトがその位置に到達すると(move()メソッドに含まれているロジックなしにジッタが残ります)正確な位置に移動して停止するより良い方法はありますか?