每次点击鼠标时,我都想在画布上画一个随机图像。
let img = []
function preload(){
for (let i = 0; i < 3; i++) {
img[i] = loadImage('img/img' + i + '.png')
}
}
function setup() {
createCanvas(windowWidth, windowHeight)
background(200, 255,255 )
let img = random('img')
}
function draw() {
}
function mouseClicked() {
image(img,200, 200, 50, 50)
}
<html>
<head>
<meta charset="UTF-8">
<script language="javascript" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.6.1/p5.js"></script>
<script language="javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.6.1/addons/p5.dom.min.js"></script>
<script language="javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.6.1/addons/p5.sound.js"></script>
<script language="javascript" type="text/javascript" src="sketch.js"></script>
</head>
<body>
</body>
</html>
控制台: p5.js说:()期望p5.Imagesp5.Element参数#0 (基于零的索引),而不是接收数组。
没有出现任何图像,并且该错误不断弹出。
我一直在研究这个类似的问题,但似乎无法在上面的问题中找到答案:stack question。以及编码训练、vid和p5示例。
发布于 2018-07-08 07:33:29
您需要一个新的变量来引用从三个图像数组中随机选择的图像。
将下面一行添加到代码的最顶端
var randomImageLocation
变更线
img[i] = loadImage('img/img' + i + '.png')
至
img[i] = 'img/img' + i + '.png' // store the image location in array only
然后换行
let img = random('img')
至
randomImageLocation = img[Math.floor(Math.random() * img.length)];
然后在mouseClicked函数中使用randomImageLocation变量而不是img。
let randomImage = loadImage(randomImageLocation)
image(randomImage,200, 200, 50, 50)
有关从数组Getting a random value from a JavaScript array中选择随机元素的详细信息,请参阅此问题。
https://stackoverflow.com/questions/51233447
复制相似问题