我制作的程序会在每次点击mouss时随机化并加载6个不同的图像。
function mousePressed() {
randomNum1 = floor(random(0,6));
randomNum2 = floor(random(0,6));
randomNum3 = floor(random(0,6));
randomNum4 = floor(random(0,6));
randomNum5 = floor(random(0,6));
randomNum6 = floor(random(0,6));
image(dieImages[randomNum1],0,0);
image(dieImages[randomNum2],100,0);
image(dieImages[randomNum3],200,0);
image(dieImages[randomNum4],300,0);
image(dieImages[randomNum5],400,0);
image(dieImages[randomNum6],500,0);
}
我很确定我可以在某个地方使用for循环,但我并不乐观。任何帮助,将不胜感激。谢谢!
答案 0 :(得分:0)
您已经在为图像使用数组了。 dieImages
数组基本上包含一堆图像变量。为什么不对你的随机数做同样的事情?
语法可能如下所示:
randomNum[0] = floor(random(0,6));
randomNum[1] = floor(random(0,6));
randomNum[2] = floor(random(0,6));
randomNum[3] = floor(random(0,6));
randomNum[4] = floor(random(0,6));
randomNum[5] = floor(random(0,6));
您可以缩短使用for
循环:
for(var i = 0; i < randomNum.length; i++){
randomNum[i] = floor(random(0,6));
}
然后,您的image()
调用使用randomNum
变量作为索引。如果随机数在我们刚刚看到的数组中,则image()
行可以是:
image(dieImages[randomNum[0]],0,0);
image(dieImages[randomNum[1]],100,0);
image(dieImages[randomNum[2]],200,0);
image(dieImages[randomNum[3]],300,0);
image(dieImages[randomNum[4]],400,0);
image(dieImages[randomNum[5]],500,0);
你可以缩短到这一点:
for(var i = 0; i < randomNum.length; i++){
image(dieImages[randomNum[i]], i * 100, 0);
}
旁注:如果您重构此代码以使用包含图像和位置的对象,而不是在相应索引中保存相关数据的两个parallel arrays,则可能会更容易。