【问题标题】:Random Selections from Arrays从数组中随机选择
【发布时间】:2014-04-29 04:53:22
【问题描述】:

我正在 Unity 中创建游戏。我现在正处于计划阶段,但我正在努力解决我遇到的问题。游戏涉及从三个不同类别中随机选择的物体掉落,玩家必须在特定的箱子中抓住特定的物体。

所以这就是需要发生的事情: 必须随机选择一个或两个阵列,必须选择该特定阵列内的一个或两个物体,一次不能超过四个物体,不同的物体必须从不同的地方落下并且在不同的时间落下。

现在我从另一个项目中得到了一段代码,它是用 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++ 中的随机选择的信息。

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

【问题讨论】:

    标签: javascript c++ arrays random


    【解决方案1】:

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

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

    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];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-09-16
      • 2011-03-29
      • 2011-05-26
      • 2018-11-11
      • 2012-12-23
      • 2013-03-27
      相关资源
      最近更新 更多