似たような質問がたくさん見つかりましたが、私自身の問題に答えるものはありませんでした。それはおそらく非常に単純なことですが、遅れており、私には理解できません。私が取り組んでいる Android ゲームがあります。画面に触れると、その方向にスプライトが「発射」されます。ほとんどのコードは動作していますが、スプライトが発火して移動した後、タッチ ポイントに到達してから揺れるだけです。その角度で進み、最終的には跳ね返ってほしい...
これが私のコードです(重要な部分です):
List<TouchEvent> touchEvents = game.getInput().getTouchEvents();
int len = touchEvents.size();
for(int i = 0; i < len; i++) {
TouchEvent event = touchEvents.get(i);
if(event.type == TouchEvent.TOUCH_UP) {
touchPoint.set(event.x, event.y);
guiCam.touchToWorld(touchPoint);
}
}
//Log.d("PANDAM", touchPoint.x + "|" + touchPoint.y);
float speed = 112f;
double theta = 180.0 / Math.PI * Math.atan2(panda_y - touchPoint.y, panda_x - touchPoint.x);
Log.d("PANDAM", " > "+theta+" < ");
movePanda(theta, speed, deltaTime);
そして「movePanda」メソッド:
private void movePanda(double angle, float speed, float deltaTime)
{
panda_x += speed * Math.cos(angle)*deltaTime;
panda_y += speed * Math.sin(angle)*deltaTime;
}
私の質問は、どうすればパンダがタッチ ベクトルに沿って進み、元のタッチ ポイントに到達したときにスパズアウトしないようにするにはどうすればよいですか?