2017-03-19 18 views
2

座標がであるかどうかを検出する方法はありますか?処理中の円の半径はですか?処理中の円の半径以内

たとえば、私のプログラムでは、プレイヤー2のスプライトがオーバラップしてプレイヤー1のスプライトを「キャプチャー」した場合、ゲームを終了します(プレイヤー1のスプライトがプレイヤー2のヒットボックスサークル内にある場合)。 *注:プレイヤー1のスプライトはかなり小さく、位置を定義する座標はこの重なり検出に十分でなければなりません

ありがとう!

答えて

2

あなただけdist()機能を使用することができます。

点と円の中心との距離を取得します。その距離が円の半径よりも小さい場合、点は円の内側にあります。

これが意味を成す理由を確認するためにいくつかの例を紹介することをおすすめします。

詳細はthe referenceでご覧になれます。

0

私は、処理に慣れていないですが、それは数学の問題であり、ピタゴラスを使用して解決することができます。

float cx; //center x of circle 
float cy; //center y of circle 
float cr; //radius of circle 

float x; //tested x coordinate 
float y; //tested y coordinate 

(sqrt(pow(x-cx, 2) + pow(y-cy, 2)) < cr) // must evaluate to true for a hit-test 
関連する問題