【发布时间】:2013-09-28 08:19:23
【问题描述】:
我是从 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 问题或其他问题。
也许语言不理解整个地址以将纹理作为字符串查找。
【问题讨论】:
-
NullReferenceException 是在哪里抛出的?什么对象是空的?由于您正在尝试加载 PNG,您是否尝试将 +".png" 添加到您的字符串中?
-
不确定这是否是复制粘贴,但在 C# 中,数组索引从 0 开始并转到 Length-1。当 i == 9 时,您索引到 _bCards 和 _rCards 将遇到 Out 或 Range 异常。