2012-02-29 12 views
4

Iveは、長方形を移動し、空から他の落下する四角形をかわすゲームを作成しました。矩形が交差するたびに何も起こりません。Rect.intersectメソッドの使用方法

if(mSquare.intersect(jSquare)){ canvas.drawColor(Color.BLACK);
または

collision = mSquare.intersect(jSquare); 
    if(collision==true){ canvas.drawColor(Color.RED); 
    } this always returns false no matter where the rectangles are....... 

答えて

4

これを実行する方法はたくさんありますが、最も簡単なのは、各BitmapのためのバウンディングRectを得ることであろうとするたびにステップがRect.intersect()メソッドを使用して衝突をチェックします。このような

何か:

boolean collision = player.getRect().intersect(fallingObject.getRect()); 

はまた、特にあなたが画面上のオブジェクトの多くを持っていたときに長方形ではなく、オブジェクトを扱うとき、これを行うには、他の多くの(良い)方法があります。チェックアウトthis post for a good discussion

また、ゲームの作成を検討している場合は、「Androidゲームの開始」という本には衝突検出に関する素晴らしい章があり、この本は読んでおく価値があります。

+0

ありがとうございます。私はこの悪い少年を試してみましょう! –

+0

Iveはたくさんのものを試しましたが、何も動作していないようです.....ここまではどれくらいの距離しかありませんが、これらのメソッドは動作しません... if(Rect.intersects(mSquare、mSquare)){ \t canvas.drawColor .LTGRAY); } .................または.......... boolean collision = mSquare.intersect(jSquare); if(collision == true){canvas.drawColor(Color.LTGRAY); }キャンバスは決して変化しません!私はうんざりする助けてください。 –

+1

'Rect.intersect'は**静的メソッドです。つまり、オブジェクトのインスタンス上で呼び出す必要があります。 2つの矩形の間のインターセットをチェックする正しい方法は、 'r1'と' r2'を呼び出すことで 'r1 'のようなメソッドを呼び出すことです。 (r2) '** NOT **' Rect.intersect(r1、r2) '詳細についてはアンドロイドのRectドキュメントをご覧くださいhttp://developer.android.com/reference/android/graphics/Rect.html – slayton

関連する問題