我在设置位置时遇到问题,随后从精灵数组中绘制单个元素。我对独立精灵没有任何问题,但是我在阵列上被绊倒了。
简单的例子来说明问题,真正的代码是正确的,但相同的概念 -
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数组是否能够具有每个索引位置......?我能以某种方式解决这个问题吗?
我之前通过循环并设置位置然后随后绘制每个索引来回避这个问题,但现在我需要根据位置在另一个函数中进行计算,并且我的位置对于所有元素都是相同的
干杯&谢谢你的帮助! :)
答案 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.
}
然后你可以相应地修改位置。