XNA - 为每个索引设置精灵数组的位置

时间:2013-07-18 04:19:39

标签: xna sprite

我在设置位置时遇到问题,随后从精灵数组中绘制单个元素。我对独立精灵没有任何问题,但是我在阵列上被绊倒了。

简单的例子来说明问题,真正的代码是正确的,但相同的概念 -

myVar[0]=myImg;
myVar[0].Position.X=300;
myVar[0].Position.Y=300;
myVar[1]=myImg;
myVar[1].Position.X=400;
myVar[1].Position.Y=400;

如果我现在去绘制这些,只有myVar [1] @ 400被绘制,因为myVar [0]也采取了相同的位置。当在多个元素中使用相同的图像时,这只是一个问题。基本上我只使用5个不同的平铺图像绘制一个20x20网格阵列,所以自然会有一些重用。

Sprite数组是否能够具有每个索引位置......?我能以某种方式解决这个问题吗?

我之前通过循环并设置位置然后随后绘制每个索引来回避这个问题,但现在我需要根据位置在另一个函数中进行计算,并且我的位置对于所有元素都是相同的

干杯&谢谢你的帮助! :)

1 个答案:

答案 0 :(得分:0)

这里的问题是您多次引用一个对象。

myVar [0]和myVar [1]指向相同的内存位置。你最想做的就是为每个条目创建一个新的Sprite。

for (int i = 0; i < myVar.length; i++) {
  myVar[i] = new Sprite(<your img>);//This will ensure you have a different 
                                    //memory location for each Sprite object 
                                    //but keep the same image.
}

然后你可以相应地修改位置。