2016-04-10 10 views
0

私は、画面の一部でタイルベースの戦闘を使用するゲームを作成しています。私は既にノードの2次元配列をマッピングしています(各ユニットを描画するコーナー位置を持っています)、実際の単位を描いていくつかのテストを行っています。今はマウスの選択作業が必要ですが、マウスのクリックを配列内の特定のノードにマッピングする方法を見つけるのが難しいです。私は各ノードにポジションを格納していますが、どのノードを正確に使用するかわかりません。誰かに正方形をクリックさせて、実際に選択した四角形を登録する方法があるようにしたいと思います。どんな助け?グリッド上でマウスを選択する方法は? Monogame/XNA

This is an example of part of my grid which is in the bottom half of my screen

+0

ショーあなたのセル位置が保存されている:今

class Node { // ... public Rectangle BoundingRectangle { get { return new Rectangle(x, y, width, height); } } // ... } 

は、マウスクリックを処理するには? – LibertyLocked

答えて

1

Rectangle方法Contains(Point)を持っている、とあなたはポイントが矩形内であれば、容易に検出するためにそれを使用することができます。


は、あなたのNodeクラスはプロパティBoundingRectangleを持っていると仮定します。

MouseState mouseState = Mouse.GetState(); 

if (mouseState.LeftButton == ButtonState.Pressed) 
{ 
    foreach (Node n : nodes) 
    { 
     if (n.BoundingRectangle.Contains(mouseState.Position)) 
     { 
      // TODO: Code to handle node being clicked... 
     } 
    } 
} 
+0

これはまさに私が探していたものでした。ありがとう、私はこれを見ていきます。 –