有没有办法在游戏循环中进行随机滴答?

时间:2012-11-28 22:11:23

标签: java random game-loop

对于我正在制作的游戏,我需要随机刻度。有没有办法可以做到这一点?我不希望它基于我的游戏的滴答率(平均每秒60个滴答),因为我需要随机移动一个角色。也许我可以使用一些Notch的代码?

2 个答案:

答案 0 :(得分:1)

以固定费率运行javax.swing.Timer;在监听器中,使用随机变量来判断是否发生了某些事情,例如: nextBoolean()概率为50%,nextInt(3)为33%,等等。有相关示例here

答案 1 :(得分:0)

您有两个主要选择;

  1. 您可以存储随机值,并将每个滴答减少(减1)。当它达到零;执行您想要的操作,并为变量分配一个新的随机数。冲洗并重复。
    • 这有效地为你提供了一个随机的psudo-tick,完全在现有计时机制的约束下。
  2. 忽略滴答声;随机行动不需要随机间隔,只需要随机机会 基本上,如果机会成功,您可以为实体选择新的操作。
    • 根据他们执行当前操作的时间来修改机会很常见;因此,一个实体越长,比如说“坐下来”,他们就越有可能转换到别的东西。
  3. 您可能还想在state-machines上查找资料, 作为一种为游戏角色实现简单AI的常用方法(这似乎就是你正在做的事情)。