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



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

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

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数组是否能够具有每个索引的位置。。。?我能以某种方式绕过这个吗?

早些时候,我可以通过循环并设置位置来避开这个问题,然后根据索引绘制,但现在我需要在另一个函数中根据位置进行计算,并且我的位置对所有元素都是相同的

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

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

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

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.
}

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

最新更新