我有一个我们的角色有生命的游戏(例如 super 跳投,这个游戏是一个跳跃游戏)。与敌人相撞后,他的生命减少。我想1秒后,计算碰撞。我的意思是在这1秒钟内,如果我的角色与敌人接触,则什么也不会发生,他会继续前进。
为此,我在GameScreen类中定义了一个 boolean 变量,名称为“collision”,在Wolrd类中定义了另一个变量,名称为“collBirds”。一次与敌方碰撞和collBirds接触后变为true。但我想在1秒钟后将共通更改为false。我使用了诸如System.currentTimeMillis()和“for循环”之类的东西,但没有任何 react 。我不太擅长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);

10-07 14:13