XNA:在数组中存储大量Texture2D

时间:2012-05-22 15:51:49

标签: c# xna texture2d

我开始使用xna,我对此很新手,但是我正在努力继续使用这个框架,不管怎么说,我的问题是:  我有很多.png图像并且不想为这些图像制作一个对象,所以我想把它们放在一个Texture2D数组中,我认为这是做到这一点的方法,但看起来不是这样的正确的方法:

Texture2D[] _rCards, _bCards, _sCards;
_bCards = new Texture2D[9]; 
_rCards = new Texture2D[9];
_sCards = new Texture2D[6];

for (int i = 1; i < 10; i++)
{
    _bCards[i] = Content.Load<Texture2D>("Images/Common/Black/"+i);
    _rCards[i] = Content.Load<Texture2D>("Images/Common/Red/"+i);
    if(i<6)
        _sCards[i] = Content.Load<Texture2D>("Images/Special/Card" + (i-1));
}

纹理的文件名是1.png,2.png,3.png等。

特殊卡有card1.png,card2.png,card3.png等。

我正在尝试制作二十一点游戏。

你能给我一个建议,在一个texture2D数组中加载所有这些纹理。

IDE会出现NULLREFERENCEEXCEPTION问题。

也许这种语言不能理解整个地址,无法将纹理找到字符串。

1 个答案:

答案 0 :(得分:1)

索引是基于0的......

for (int i = 1; i < 10; i++)
{
  _bCards[i-1] = Content.Load("Images/Common/Black/"+i);
  _rCards[i-1] = Content.Load("Images/Common/Red/"+i);
   if(i<6) _sCards[i-1] = Content.Load("Images/Special/Card" + (i-1));
}

如果你想同时加载所有纹理,你可以使用精灵表样本:

http://create.msdn.com/en-US/education/catalog/sample/sprite_sheet

您将拥有一个独特的资源和一个源矩形字典来绘制精灵......