如何使用计时器延迟与计时器类(java.util.timer)无关的特定任务?

如何使用计时器延迟与计时器类(java.util.timer)无关的特定任务?,java,Java,我正在用Java为一个个人项目制作一个基于文本的RPG。在游戏中,主角将拥有使用咒语或异能的能力。我想给前面提到的法术或技能加一点冷却。我已经研究了javax.swing.Timer和java.util.Timer类,但还没有找到一种方法来使用这个冷却。我没有使用线程或守护进程(主要是因为我认为我不需要,而且我没有使用它们的经验) 任何关于如何进行的帮助或想法都将不胜感激,谢谢 校友 当你使用你的法术时,设置一些变量来表示该法术现在不可用。然后启动一个计时器,作为你的冷却。当计时器滴答作响时,

我正在用Java为一个个人项目制作一个基于文本的RPG。在游戏中,主角将拥有使用咒语或异能的能力。我想给前面提到的法术或技能加一点冷却。我已经研究了javax.swing.Timer和java.util.Timer类,但还没有找到一种方法来使用这个冷却。我没有使用线程或守护进程(主要是因为我认为我不需要,而且我没有使用它们的经验)

任何关于如何进行的帮助或想法都将不胜感激,谢谢

  • 校友

当你使用你的法术时,设置一些变量来表示该法术现在不可用。然后启动一个计时器,作为你的冷却。当计时器滴答作响时,重置该变量以指示它已冷却,可以再次使用。

只需保存System.currentTimeMillis()在施法时,检查英雄再次施法的时间。

如果可能,您可以在应用程序中触发该法术/技能时保存当前游戏时间并禁用该技能。

然后,如果你能做到这一点,你可以通过计算当前时间与触发法术/异能的时间之间的时间差来检查每一次“帧更新”,如果冷却时间已经过去,并在所需时间过去后重新启用该异能。

如果该RPG是基于回合的战斗,则执行以下操作:

用等待冷却所需的圈数制作冷却变量

现在为当前冷却回合制作另一个变量,现在将其值设置为与冷却回合相同的值
curcooldown=waitforcooldown
,诸如此类

然后如果你检查玩家是否想要使用这个法术,然后像这样检查

If player wants to use spell & curcooldown is 0
    UseSpell
Else if (player wants to use spell & curcooldown greater or equal to 0
    saytoplayerthatspellisundercooldown
如果使用了咒语,则
curcooldown=waitforcooldown
将其设置为冷却值转换值。 每次回合结束后,将curcooldown值减少1,这意味着你的冷却时间只损失了1回合,以此类推

希望这有帮助