2013-04-26 111 views
0

我忙一个的NodeJS对位改装一场比赛,但我想知道如何做这样的事情最大的选择像的Javascript往往小于

var zombieBison = 'Entities/Zombies/zombieBison.cfg' 

现在让野牛更多地产生稀有骨骼和僵尸。 你得到这个,这里randomZombie等于“实体/僵尸/ aZombie.cfg” ks.map.spawnEntity('zombie', randomZombie, 0, 0, 3); 我不能得到任何进一步的比

var randomZombie = zombieDirector[Math.floor(Math.random() * zombieDirector.length)]; 

在另一方面:没有jQuery,请提前

谢谢

回答

1

实质上,你正在谈论加权随机数的生成。一个小技巧,如果你想使用数学,但你可以用一个数组做到这一点,就像这样:

var choices = []; 
for(prop in zombieDirector) { 
    for(var i = 0; i<zombieDirector[prop]; i++) { 
     choices.push(prop); 
    } 
} 

var choice = choices[Math.floor(Math.random() * choices.length + .5)]; 

变量choice现在将有一个随机的怪物名称,基于加权您在提供数。

+0

如果不使用数学更容易,请给我另一个例子,如果你想:)已经为此感谢! – Mazey 2013-04-26 16:29:39

+0

这实际上是数学的例子。 :)如果有帮助,请考虑接受并提高我的答案。 – 2013-04-26 19:51:58

+0

我在'僵尸导演中的道具'有问题,它究竟是什么?我尝试过这样的事情,但它给了'未定义' – Mazey 2013-04-27 06:40:58