java - 如何使 boolean 值持续一段时间?

标签 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;
    }

最佳答案

在不确切知道你的 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;
    }
}

通过这种方法,您不需要额外的库。

关于java - 如何使 boolean 值持续一段时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37222872/

相关文章:

java - 如何使用Java中的模式来获取像C中的 'sscanf'那样的组?

Java Arraylist 删除对象

java - 在 Jar 文件中加载图像 java.lang.RuntimeException : Resource not found

java - 需要一双新的眼睛来找出为什么我的股四头肌没有被着色

java - 如何使用 Slick 显示文本?

java - EnterState() 转换如何工作? (光滑2D)

java - 为什么我在牙套上出现错误?

java - 使用 Java 将多个客户端连接到 RMI 服务器时出现 "ObjectID already in use"错误

java - Grails Quartz 插件在启用持久性的情况下在启动时删除触发器

java - Java进程故障(hadoop,hbase)