【问题标题】:Picking a random item from an array? [duplicate]从数组中选择一个随机项目? [复制]
【发布时间】:2018-03-29 07:04:09
【问题描述】:

所以我正在 HTML5 Canvas 上制作一个小游戏。我有一个显示在画布上的图像数组和一个按钮(它只是一个事件侦听器,检查是否单击了画布的某个区域。)单击此按钮时,我希望选择一个随机图像这样我就可以让它执行一项任务(运行一个函数和一个动画,我将在随机选择排序后实现)。

我假设我可以使用 math.random() 的一些变体来随机选择图像,但我是否首先需要为每个图像分配一个值,例如如果有 5 张图片,0 到 4?

数组代码如下:

        var imageArray = new Array();
        imageArray[0] = "./assets/1.png";
        imageArray[1] = "./assets/2.png";
        imageArray[2] = "./assets/3.png";
        imageArray[3] = "./assets/4.png";
        imageArray[4] = "./assets/5.png";

        var box = new Image();
        box.onload = function () {
            ctx.drawImage(box, 50, 180, 150, 133);
            ctx.drawImage(box, 220, 180, 150, 133);
            ctx.drawImage(box, 390, 180, 150, 133);
            ctx.drawImage(box, 50, 320, 150, 133);
            ctx.drawImage(box, 220, 320, 150, 133);
            ctx.drawImage(box, 390, 320, 150, 133);
            ctx.drawImage(box, 50, 460, 150, 133);
            ctx.drawImage(box, 220, 460, 150, 133);
            ctx.drawImage(box, 390, 460, 150, 133);
        };
        box.src = imageArray[4];

【问题讨论】:

    标签: javascript arrays html canvas random


    【解决方案1】:

    要获得一个随机整数,可以执行以下操作:

    Math.floor(Math.random() * max);

    其中max 是您要生成的最大数量,或者在您的情况下是数组的长度。如果max4,则可能的输出是0, 1, 2, 3

    【讨论】:

      【解决方案2】:

      你可以试试这样的:

      Math.floor(Math.random()*imageArray.length)
      

      它给你一个介于 0 和你的数组长度之间的随机数

      看看这个,它可以帮助你 Generating random whole numbers in JavaScript in a specific range?

      【讨论】:

      • 谢谢!看看我有 9 个 imageArray[4] 实例吗?是否可以让您刚刚向我展示的代码仅从这 9 个中选择一个随机值,而不是从加载到数组中的 5 个唯一资产中随机选择?
      猜你喜欢
      • 2021-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-11
      • 2017-07-01
      • 2011-02-28
      • 2017-09-20
      • 2015-05-04
      相关资源
      最近更新 更多