我正在制作2D游戏,其中玩家的精灵存储在数组列表中。由于玩家有多个状态,我想在使用时删除以前的状态。我有一个ArrayList:
List<Image> x = new ArrayList();
现在我将此列表中的图片用作:someImageView.setImage(x.getImage(y));
我首先删除(例如5:0,1,2,3,4,5
图像)状态为:
for(int i = 0; i < 6; i++)
x.remove(y);
但是这些图像仍然显示而不是下一个图像集。
可能是某种缓存吗?如果是这样,我如何删除此缓存以便应用我的新图像?
我的精灵图像声明如下(对于一个图像显示,但对所有图像都相似):
Image someImg = new Image("path", true, false, true);
答案 0 :(得分:2)
我不知道我是否理解你。
所以,你使用例如要在A
上设置的列表的第一个元素(设置正确),然后从列表中删除此元素。
此时您是否希望图片也会从ImageView
移除?
为什么要被删除?
该列表包含对象(指针)的引用。当您从列表中设置图像时,引用将传递给ImageView,因此现在它也将指向该对象。如果从列表中删除引用,则无关紧要,ImageView
仍将指向该引用。
因此,您可以在删除元素后明确调用ImageView
,或使用setImage
并将图片设置为删除(如下所示):
ObservableList