在C#-XNA中检测精灵

时间:2013-04-10 15:18:52

标签: c# xna sprite

我正在用C#开发一款uno游戏。 XNA。 在游戏的某个阶段,我需要检测哪个卡位于特定位置。 那么我们如何通过传递屏幕坐标来检测哪个精灵位于某个位置?

1 个答案:

答案 0 :(得分:0)

将精灵位置存储在某个变量中,并将屏幕坐标与该变量进行比较。由于精灵覆盖某个区域,您可能不仅要存储其原点,还要存储它的高度和宽度;一个矩形可以很好地完成这项工作。

示例:

class Game1
{
    List<Rectangle> cardSpriteAreas; // this is where you store the card's areas

    public void Update()
    {
         Point position = GetInterestingPosition(); // this is the point you want to check
         foreach(var spriteArea in cardSpriteAreas)
         {
              if (spriteArea.Contains(position))
              {
                   // position is contained within the card's area!
              }
         }
    }
}