2013-04-26 44 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