Javascript选择最大,而不是更小

时间:2013-04-26 15:56:45

标签: javascript node.js

我正忙于使用nodejs来修改游戏,但我想知道如何做这样的事情:

var zombieDirector = 
{
zombieBison = 1
zombieChicken = 2
zombie = 3
skeleton = 3
}

并且这些名称还有另一个var

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

现在让Bison更经常地产生罕见的骨骼和僵尸。 你得到这个,randomZombie等于'Entities / Zombies / aZombie.cfg' ks.map.spawnEntity('zombie', randomZombie, 0, 0, 3);

我不能再进一步了
    var randomZombie = zombieDirector[Math.floor(Math.random() * zombieDirector.length)];

另一方面:请不要JQuery

提前致谢

1 个答案:

答案 0 :(得分: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现在将有一个随机怪物名称,根据您在zombieDirector中提供的数字进行加权。