当它们与我的鸟碰撞时,我想除去物体,但我不能这样做,但我不知道为什么不能。
这是我的代码:
if (Intersector.overlaps(this.birdCircle, this.enemyRectangle[i]) || Intersector.overlaps(this.birdCircle, this.enemyRectangle2[i]) || Intersector.overlaps(this.birdCircle, this.enemyRectangle3[i]) || Intersector.overlaps(this.birdCircle, this.enemyRectangle4[i]) || this.gameTime == 0.0F) {
// this.gameState = 2;
}
如何清除敌人。 (也enemyRectangle[i] = altEngel
)altEngel
是一个纹理,它们不在ArrayList
中。
答案 0 :(得分:0)
如果要删除libgdx中的某些内容,请使用dispose()
方法,以解决要删除的内容。您可以将没有dispose()
方法的事物设置为null,以摆脱引用,然后垃圾回收器将摆脱它们。
答案 1 :(得分:0)
Libgdx为此具有一个特殊的类-DelayedRemovalArray<>
它的工作方式类似于ArrayList:
DelayedRemovalArray<> array;
碰撞后,您可以删除对象:
array.removeIndex(i);
如果需要详细的答案,请写更多信息