【问题标题】:Load a texture in List of Texture2D XNA在 Texture2D XNA 列表中加载纹理
【发布时间】:2014-08-06 13:00:49
【问题描述】:

我创造了

List<Texture2D> paddles = new List<Texture2D>();

在 XNA 的 LoadContent() 中,我想加载单个纹理,所以我这样做了:

paddles[0] = Content.Load<Texture2D>("Graphics/First Paddle");
paddles[1] = Content.Load<Texture2D>("Graphics/Second Paddle");

但是当我尝试运行这行代码时,我收到了这个错误paddles[0] = Content.Load&lt;Texture2D&gt;("Graphics/First Paddle");

在 mscorlib.dll 中出现“System.ArgumentOutOfRangeException”类型的未处理异常 附加信息:索引超出范围。必须为非负数且小于集合的大小。

如何解决?

谢谢

【问题讨论】:

  • 你可能想做类似的事情: paddles.Add(Content.Load("Graphics/First Paddle"));有人可以证实这一点吗?我现在无法访问我的 VS
  • 但是,桨是否只加载了第一个桨?如果我想加载第一个和第二个桨怎么办?谢谢
  • 您只需复制上述行,但将“Graphics/First Paddle”替换为“Graphics/Second Paddle”

标签: c# xna


【解决方案1】:

您正在尝试引用当前不存在的列表项,因此您会收到给定的错误。尝试使用以下内容:

paddles.Add(Content.Load<Texture2D>("Graphics/First Paddle"));

注意以后列表永远不会实例化它的对象,所以你需要使用 Add 来直接添加到列表中。

【讨论】:

  • 但是,桨是否只加载了第一个桨?如果我想加载第一个和第二个桨怎么办?谢谢
  • 只需再次执行相同操作即可。从某种意义上说,它们看起来与数组完全一样,您可以像使用数组一样使用它们的索引,但它们的工作方式与数组不同,因此在添加新项目时,您需要使用 Add 而不是直接分配给索引.
猜你喜欢
  • 2014-08-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-22
相关资源
最近更新 更多