- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
场景:
我正在制作一款流行纸牌游戏的克隆版。需要有一段时间人们可以加入游戏。有时,周期太短。因此,我想让人们延长等待时间。对于示例号码,默认的“大堂时间”为 45 秒,每次分机为 15 秒。
问题:
我决定使用 Java 的定时器。当“大厅”开始时,TimerTask 被安排在从现在开始的 45 秒内:
UnoStartTimer.schedule(new UnoStartTask(), 45000);
当有人想延长延迟时,这是我要运行的伪代码:
UnoStartTimer.reschedule(UnoStartTimer.getNextScheduledTime() + 15000);
快速浏览 the javadoc表示不存在使用 Timer 类的这种简单解决方案。
这是我想到的可能性:
那么,是哪一个呢?
最佳答案
看java.util.Timer .除其他事项外,我还看到了一个 cancel() 方法。我还看到一个 schedule() 方法采用 Date 对象而不是毫秒数。
您可以创建一个从现在开始 45 秒后的日期对象,用该时间安排计时器,如果发生延期,则取消它,向原始日期对象添加 15 秒并用该新时间安排任务。
关于java - 为游戏重新安排 TimerTask 'lobby',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11141792/
场景: 我正在制作一款流行纸牌游戏的克隆版。需要有一段时间人们可以加入游戏。有时,周期太短。因此,我想让人们延长等待时间。对于示例号码,默认的“大堂时间”为 45 秒,每次分机为 15 秒。 问题:
代码在 angular 8.3.4 版本上运行良好,但是当我将其更新到最新版本的 angular ( 9 ) 时,出现以下错误 以下是堆栈跟踪 core.js:3866 ERROR Error: Un
我想让每个客户端在大厅中选择他们的玩家预制件,当游戏开始时我想为客户端实例化选定的预制件。我在 LobbyManager 中定义了变量,但它不起作用。它总是与同一个主机。我该如何解决这个问题? 这是我
我是一名优秀的程序员,十分优秀!