2015-04-24 49 views
0

當我按下Y時使用了Xbox控件我想要一個陷阱出現,但它確實如此,但我不希望陷阱在彼此之上,因此它不應該用於放置陷阱。 我現在可以放置多少像我想要的那樣,但是當我把一個陷阱置於另一個之上時,它是可能的,但之後我不能再放置任何陷阱。陷阱類有一個hitbox。這是我的代碼。如何防止彼此的多個對象/圖片?

if (Ypress == true) 
     { 
      canPlace = true; 
      for (int i = 0; i < trapList.Count; i++) 
      { 
       if (trapList[i] != trap && trapList[i].hitBox.Intersects(trap.hitBox)) 
       { 
        canPlace = false; 
       } 
      } 

      if (canPlace) 
      { 
       trap = new Trap(pos, TextureManager.archerTrap, new Point(50, 50), new Point(3, 1), 2000, true); 
       trapList.Add(trap); 
      } 
     } 

回答

0

從您發佈,在循環過程的代碼的外觀,trap將最有可能null或者你不值想要的。

trap = new Trap(...)代碼移到for循環之前(其中canPlace = true;是),以便您檢查碰撞的陷阱是您要放置的陷阱。如果事實證明你不能放置該陷阱,那麼你所要做的就是跳過trapList.Add(trap);這一行,然後對它進行排序(假設trap未在別處使用)。