gpt4 book ai didi

java - 停止 int 在一定时间内增加或减少

转载 作者:太空宇宙 更新时间:2023-11-04 07:34:39 24 4
gpt4 key购买 nike

我目前正在开发一个Java游戏,我有一个代表玩家生命值的int,它从100开始,每次与敌人相交时生命值都会减少5,但是,它每秒检查60次,因此,它会在玩家与敌人接触的那一秒迅速减少,因此在接触敌人时每秒会减少300。我想知道是否可以阻止 int 值改变大约 3-5 秒?我不知道这是否可能,我尝试过:

try {
Thread.sleep(4000);
} catch(InterruptedException ie) {
Thread.currentThread().interrupt();
}

然后可以在后面添加 int,但这只是让整个程序停止 4 秒,同时还有其他事情在发生。

最佳答案

Thread.sleep 导致当前线程暂停执行” - 如果您不想停止整个线程,请不要使用它。

您可以创建一个线程来负责更改int值,然后为了执行周期性任务,您可以使用 ScheduledExecutorService#scheduleAtFixedRate 。例如:

Runnable myRunnable = new Runnable() {
public void run() {
//...
}
};

ScheduledExecutorService ex = Executors.newScheduledThreadPool(1);
ex.scheduleAtFixedRate(myRunnable , INITIAL_DELAY, PERIOD, TIMEUNIT);

现在您可以决定线程何时运行以及运行多长时间。但是,我建议您重新考虑您的设计,以免为时已晚并且您的代码会变得困惑。

关于java - 停止 int 在一定时间内增加或减少,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17121444/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com