首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在一段时间内停止int的增加或减少

在一段时间内停止int的增加或减少
EN

Stack Overflow用户
提问于 2013-06-15 15:59:43
回答 1查看 147关注 0票数 1

我现在正在做一个Java游戏,我有一个整数,它代表玩家的健康,从100开始,每次它与敌人相交时,它的生命值减少5,然而,它每秒检查60次,所以,它迅速减少,因为在那一秒,玩家正在与敌人接触,因此当它接触敌人时,它每秒钟减少300次。我想知道是否有可能阻止一个int的值改变大约3-5秒?我不知道这是否可行,我试过了:

代码语言:javascript
运行
复制
try {
   Thread.sleep(4000);
} catch(InterruptedException ie) {
   Thread.currentThread().interrupt();
}

然后可以在那之后添加int,但这只会让整个程序停止4秒,在那个时候还有其他事情在进行。

EN

回答 1

Stack Overflow用户

发布于 2013-06-15 16:15:52

"Thread.sleep导致当前线程暂停执行“-如果你不想停止整个线程,就不要使用它。

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

代码语言:javascript
运行
复制
Runnable myRunnable = new Runnable() {
    public void run() {
        //...
    }
};

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

现在,您可以决定线程何时运行以及运行多长时间。然而,我建议你重新考虑你的设计,以免为时已晚,你的代码会变得一团糟。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17121444

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档