从数组中随机选择

时间:2014-04-29 04:53:22

标签: javascript c++ arrays random

我在Unity中创建游戏。我现在处于规划阶段,但我正试图解决我遇到的问题。游戏涉及来自三个不同类别的随机选择的对象,玩家必须捕捉特定区域中的特定对象。

所以这是需要发生的事情: 必须随机选择一个或两个数组,必须选择该特定数组中的一个或两个对象,一次不能超过四个对象,不同的对象必须从不同的位置落下并在不同的时间落下。 / p>

现在我有一个代码片段,我从另一个用JavaScript编写的项目中获得的代码(这是我一直在使用的,但我也可以用Boo或C ++编写)解决了最后一点的部分内容。它沿x访问选择一个随机位置,然后让对象下降直到y = 0,然后重置。

function Update()
{
 transform.position.y -= 50 * Time.deltaTime;
 if(transform.position.y < 0)
 {
 transform.position.y = 50;
 transform.position.x = Random.Range(0,60);
 transform.position.z = -16;
 }
}

我要改写它的一部分,说它会在遇到一个特定的对撞机后重置,产生一段很短的时间,然后找到一个新的随机并放弃它。但我遇到的问题是对象的实际随机化。我在三个阵列中的每个阵列中都有六个对象,并且我已经查找了通过数值从数组中选择某些内容的代码,但没有关于随机选择其中一个数组然后在随机数组中选择内容的任何内容。我也没有发现任何关于JavaScript,Boo或C ++中的随机选择。

有关此代码的任何信息都会有所帮助,提前感谢!

1 个答案:

答案 0 :(得分:0)

要随机从三个数组中的一个中随机选择一个对象,最好使用数组数组。然后,您需要生成两个随机数,并将它们作为索引存储到数组数组中。

所以不是三个不同的数组,而是初始化一个数组

var a = [];
a.push([1,2,3]);
a.push([10,20]);
a.push([100,200,300,400]);

然后

var i = Math.floor(Math.random()*a.length);
var j = Math.floor(Math.random()*a[i].length);
var o = a[i][j];