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] = altEngel(altEngel是纹理,并且它们不在ArrayList中。

如果您想删除libgdx中的某些内容,请使用dispose()方法(如果有(。您可以将没有dispose()方法的东西设置为null,去掉引用,垃圾收集器就会去掉它们。

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

DelayedRemovalArray<> array;

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

array.removeIndex(i);

如果你想详细回答,请写更多信息

最新更新