猿问

p5.j​​s 无法读取数组的随机值

你好!


我正在尝试在 p5.js 中做一些事情,当程序尝试获取数组的随机值时会卡住。这是我为演示而制作的一个简单程序:


var arr = [100, 200];

var a;


function setup() {

  createCanvas(400, 400);

  a = random(0, 1);

}


function draw() {

  background(220);

  ellipse(arr[a], 20, 20, 20);

}

程序返回一条消息,说椭圆函数想要一个数字,但得到了一个变量。如果说arr[0]or arr[1],它会起作用,但不是arr[a]。


我正在使用 p5.js 网络编辑器。我不知道为什么会这样。如果您有解决方案,请回复。谢谢!


潇潇雨雨
浏览 191回答 3
3回答

叮当猫咪

有一种更简单的方法可以使用 P5.js 获取数组的随机元素。 a = random(arr);将从数组中返回一个随机元素。

Helenr

根据文档,该random()功能将:返回一个随机浮点数。这意味着它可能类似于0.123,这显然不是数组索引。如果您想从数组中获取随机索引,您应该执行以下操作:var arr = [100, 200]; var a = Math.round(random(0, arr.length));这使您能够向源数组添加更多项目,而无需调整任何其他代码。然后根据浮点值将其四舍五入为最接近的整数(向上或向下)。

有只小跳蛙

P5.js Random 返回一个随机浮点数。工作演示:var arr = [100, 200];var a;function setup() {&nbsp; createCanvas(400, 400);&nbsp; a = Math.floor(Math.random()*arr.length)}function draw() {&nbsp; background(220);&nbsp; ellipse(arr[a], 20, 20, 20);}<script src="https://cdn.jsdelivr.net/npm/p5@0.10.2/lib/p5.js"></script>
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答