如何在一段时间内使布尔值最后?

时间:2016-05-14 05:19:13

标签: java lwjgl slick2d

我试图让我的游戏产生效果,当玩家使用它时,角色跑得更快,但我想让sodaEffect持续一段时间,但我不知道怎么做。我正在使用Slick2D和LWJGL制作游戏。

    public class MainMap extends BasicGameState {

    if(input.isKeyPressed(Input.KEY_I)) {
        sbg.enterState(5);
    }
    if(InventoryClass.sodaEffect == true) {
        InventoryClass.characterSpeed = 1f;
    }
    else{
        InventoryClass.characterSpeed = .1f;
    }}

    public class InventoryClass {

    public static boolean sodaEffect = false;
    }

1 个答案:

答案 0 :(得分:2)

如果不知道你的InventoryClass做了什么,我会做这样的事情:

public class InventoryClass {
    private final static long SODA_DURATION = 5000L;
    private static long sodaStartTime;

    public static void startSodaEffect() {
        sodaStartTime = System.currentTimeMillis();
    }

    public static boolean hasSodaEffect() {
        return (System.currentTimeMillis() - sodaStartTime) < SODA_DURATION;
    }
}

使用这种方法,您不需要额外的库。