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

时间:2012-03-15 19:57:25

标签: java

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

任何有关如何解决此问题的帮助或想法都将不胜感激,谢谢。

  • 校友

4 个答案:

答案 0 :(得分:2)

只需在施放法术时保存System.currentTimeMillis(),并检查英雄再次施放法术时所经过的时间。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

如果可能,您可以在应用程序内触发咒语/异能时保存当前游戏时间并禁用该能力 然后,如果哟可以做到这一点,你可以通过计算当前时间和法术/异能被触发的时间之间的时间差来检查每次“帧更新”是否已经过去,并且当所需时间有所需时重新启用该能力过去。

答案 3 :(得分:0)

如果这个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转,依此类推......

希望这有帮助