我想在一段时间后从数组中删除索引,我希望它会掉落,然后将其删除。
private final int gravity = 4;
private long lifeTime=0;
private long delay = 20000L;
public void objGravity() {
while (array.get(array.size - 1).y > 0)
array.get(array.size - 1).y -= gravity;
lifeTime = System.currentTimeMillis();
lifeTime += Gdx.graphics.getDeltaTime();
if (lifeTime > delay) {
array.removeIndex(array.size - 1);
lifeTime = 0;
}
}
对象立即从阵列中移除,就好像没有任何延迟一样,因此它似乎没有落在屏幕上。
更新
我删除了时间等等。我添加了一个计数器来计算需要删除多少个对象,然后我执行一个循环来移除array.size-1,只要计数器> 0。
不确定它是否是最好的方法,看起来像是黑客,但我不想在旧手机上做线程。如果您有更好的主意,请分享
答案 0 :(得分:1)
不要在render方法中触发线程,它不安全,可能导致线程泄漏,许多其他问题并且难以维护代码,处理时间使用变量每次调用render时添加delta时间,当这个变量优越时,1.0f表示已经过了一秒,你的代码将是这样的:
{{1}}
为了保持井井有条,我个人在我的主游戏类上有一个数组,它包含我所有的定时事件,并处理渲染周期中的所有内容。