2016-03-31 20 views
1

私は、プレイヤーが壁に当たったときに死ぬはずの四角をコントロールするゲームを作った。正方形は絵の箱であり、壁も絵の箱です。 W、A、S、Dを使って移動することができます。私は同じようなことを考えていました:ピクチャボックスが別のコントロールに接触したときの検出

if(Square.Top == Square.Top + Square.Height) 

その後、ゲームを再開します。それを行うより良い方法はありますか? IFの多くを持っているのIstead?コントロールが何か他のものに触れるたびに?

ありがとう!

+0

実際には、Square.Top == Wall.Topは、壁が正方形の上にない限り、それらが接触したことを示しません。壁が正方形の右または左にある場合、それらは同じであっても触っていない。 –

+0

これは単なる例であり、私自身を正解させてくださいSquare.Top == Wall.Square.Top + Square.Height –

+0

衝突検出は主にインターネット上で行われています。クイック検索はこの記事を私に与えました:https://developer.mozilla.org/en-US/docs/Games/Techniques/2D_collision_detection本当に、このトピックに関するブログ記事はたくさんあります。 –

答えて

1

はい、コントロールの矩形を含むControl.Bounds、取得し、IntersectsWith別の四角形を使用します。

if(Square.Bounds.IntersectsWith(Wall.Bounds)) 
{ 
    // ... 
} 

あなたの正方形が壁に触れると、それはそれの上に行くを開始した場合にのみ、トリガされないことに注意してください、私はそれはあなたが望むものだと仮定します。

+0

それは、Gediminasに感謝しました! –

関連する問題