0

我从 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等。

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

您能给我一个建议,将所有这些纹理加载到一个纹理 2D 数组中吗?

IDE 给出了 NULLREFERENCEEXCEPTION 问题或其他问题。

也许语言不理解整个地址以将纹理作为字符串查找。

4

1 回答 1

2

索引是基于 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

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

于 2012-05-22T18:30:14.783 回答