Libgdx碰撞检测后删除对象

时间:2018-12-11 19:39:02

标签: java android libgdx

当它们与我的鸟碰撞时,我想除去物体,但我不能这样做,但我不知道为什么不能。

这是我的代码:

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] = altEngelaltEngel是一个纹理,它们不在ArrayList中。

2 个答案:

答案 0 :(得分:0)

如果要删除libgdx中的某些内容,请使用dispose()方法,以解决要删除的内容。您可以将没有dispose()方法的事物设置为null,以摆脱引用,然后垃圾回收器将摆脱它们。

答案 1 :(得分:0)

Libgdx为此具有一个特殊的类-DelayedRemovalArray<> 它的工作方式类似于ArrayList:

DelayedRemovalArray<> array;

碰撞后,您可以删除对象:

array.removeIndex(i);

如果需要详细的答案,请写更多信息