2017-05-14 6 views
0

処理を使用して2Dミニゲームをプログラムしています。 車があり、コントロールでき、十字架ゆっくり車を追う。かなりシンプル。しかし、今私の質問に。距離を使ってオブジェクトから別の移動オブジェクトにゆっくりと接近する

を1つだけ計算するには、パラメータを使用します。どの方向にクロスを移動する必要がありますか?

これは単純にそれを維持するためにB

float distance (float xa, float ya, float xb, float yb) 
{ 

    float dx = xa-xb; 
    float dy = ya-yb; 
    float dist = sqrt(dx*dx+dy*dy); 

    return dist; 
} 

をポイントツーポイントAからの距離の計算で、右、可能性と簡単な解決策が存在しなければなりませんか?

答えて

0

処理には、dist()機能があります。この機能は、自分で行うのではなく、おそらく使用する必要があります。詳細はthe referenceにあります。

あなたはXの速度とYの速度が必要なので、私はあなたが単一のパラメータで何を意味するのかよく分からないので、それは少なくとも2つのパラメータです。しかし、それらを見つけることについて移動するいくつかの方法があります。

  • あなたは単位ベクトルにあなたのXとYの距離をスケールすることができます。 PVectorクラスには便利な機能があります。再び、詳細はthe referenceにあります。

  • また、基本三角法を使用して2つのオブジェクト間の角度を計算することもできます。 Googleはそこにあなたの友人です。あなたが角度を持っているときは、cos()sin()関数を使ってXとYの速度を計算することができます。

スタックオーバーフローは、一般的な「どのようにこれを行うのですか」タイプの質問にはあてはまられていません。それはより具体的なものです。「私はXを試しましたが、Yは期待されましたが、代わりにZを得ました。だから実際に何かを試して、あなたが立ち往生した場合はMCVEを投稿してください。がんばろう。

関連する問題