2016-04-10 23 views
0

Ekranın bir kısmında kiremit tabanlı dövüşü kullanan bir oyun yapıyorum. Zaten bir 2d dizisi dizisi eşleştirdim (herbirimi birimlerim çizmek için bir köşe pozisyonu var) ve zaten gerçek birimleri çizerek bazı testler yaptım. Şimdi fare seçimi üzerinde çalışmaya başlamalıyım, ancak fare tıklaması dizideki belirli bir düğüme eşlemek için bir yol bulmakta zorluk çekiyorum. Her düğümde kayıtlı pozisyonlarım var ama onları nasıl kullanacağımı bilmiyorum. Birinin bir kareyi tıklatıp, seçtiğim kareyi kaydettirmenin bir yolunu bulmasını istiyorum. Herhangi bir yardım?Izgarada fare seçimi nasıl yapılır? Monogame/XNA

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

+0

göster cep pozisyonları saklanır: Şimdi

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

fare tıklamaları işlemek için? – LibertyLocked

cevap

1

Rectangle bir yöntem Contains(Point) vardır ve bir nokta dikdörtgenin içinde olup olmadığını kolayca tespit etmek için kullanabilirsiniz.


sizin Node sınıf bir özelliğe BoundingRectangle sahiptir varsayalım.

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

Tam olarak aradığım şey buydu. Teşekkürler, buna bakacağım. –

İlgili konular