跳转到内容

概率与随机偏移:修订间差异

无编辑摘要
无编辑摘要
标签移动版编辑 移动版网页编辑
无编辑摘要
标签移动版编辑 移动版网页编辑 可视化编辑
 
(未显示同一用户的9个中间版本)
第1行: 第1行:
概率:
概率:我们通常使用spawnChance来表达产生几率,它大部分上一章[[随机数]]相似,不再说明,
我们通常使用spawnChance来表达产生几率,它大部分上一章[[随机数]]相识,不再说明。
 
这是它调用的方法。
这是它调用的方法。
 
<pre>
public static final int a(ah ahVar, int i, int i2, int i3) {
public static final int a(ah ahVar, int i, int i2, int i3) {
         k t = k.t();
         k t = k.t();
第27行: 第27行:
         }
         }
     }
     }
</pre>
ej是id,eq是y,er是x,不过这些值很大可能没有初始化,而无法影响i4的值。
其中i4由单个spawnUnits生成次影响,这使多个spawnUnits生成结果相同。
它的生成范围是不均匀的,如果统计它的生成状况的话可能不会得到较好的效果。
为避免生成结果相同,打乱循序的开销最小,不过这需要你根据权重重新分配概率,且存在规律。
随机偏移:offRandomX/Y/XY也使用这个函数,它的生成范围是一个矩形。
在生成前添加一些无用的空项,影响i4的值也是一个解决办法,不过这可能引起性能问题。spawnUnits:dummyNonUnitWithTeam*2(spawnChance=0)
诺使用延迟来避免它,过小是不适合的,这只会加上游戏帧影响的一个乘数,使它们从左上到右下生成连起来就是一条斜线。
因此需要等待游戏更新种子后再生成,游戏更新种子的时间是不确定的,它可能在200~300区间,选择300延迟较稳定。


其中i4由单个spawnUnits第几项影响,这使多个spawnUnits生成结果相同。
你可以使用spawnSource避免这糟糕的随机数生成器,不过这又涉及rnd生成相同的问题。
它的生成范围是不均匀的,如果统计它的生成状况的话可能不会得到较好的效果。(生成从第一个开始)
随机偏移:
由于多个spawnUnits生成结果相同,为此必须使用一些延迟来避免它,过小是不适合的,这只会加上游戏帧影响的一个乘数,使它们从左上到右下生成连起开就是一条斜线。
因此我们需要等待游戏更新种子后再生成,
游戏更新种子的时间是不确定的,它可能在200~300区间,选择300延迟较稳定。
292

个编辑