我有一个游戏(如超级跳投,这个游戏是一个跳跃游戏),我们的角色有生命.在与敌人发生碰撞后,他的生命减少了.我想在1秒后计算碰撞.我的意思是在这1秒内,如果我的角色与敌人接触,没有任何事情发生,他继续他的方式.
为此,我在我的GameScreen类中定义了一个布尔变量,名为“collision”,另一个在Wolrd类中定义名为“collBirds”.一次与敌人碰撞接触后,collBirds变为true.但我想在1秒后将collistion改为false.我使用System.currentTimeMillis()和“for loop”之类的东西,但没有任何反应.我在 java中不太好.
这是我的条件:
if(World.collBirds == true && collition == false){ life -= 1; lifeString = "Life : " + life; World.collBirds = false; collition = true; for (??? "need to stay here for 1 sec" ???) { collition = false; } }
在某些情况下,您还可以使用com.badlogic.gdx.utils.Timer
用法示例:
float delay = 1; // seconds Timer.schedule(new Task(){ @Override public void run() { // Do your work } }, delay);
翻译自:https://stackoverflow.com/questions/10798477/set-a-delay-in-libgdx-game