概率与随机偏移:修订间差异
小
无编辑摘要
无编辑摘要 标签:移动版编辑 移动版网页编辑 |
小无编辑摘要 |
||
| (未显示同一用户的9个中间版本) | |||
| 第1行: | 第1行: | ||
概率:我们通常使用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延迟较稳定。 | |||
你可以使用spawnSource避免这糟糕的随机数生成器,不过这又涉及rnd生成相同的问题。 | |||