关于缩短我的 p5.js 代码的建议(for 循环?)
Advice on Shortening My p5.js Code (for loop?)
我正在制作一个程序,每次点击摩丝时,它会随机加载 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 循环,但不确定如何使用。任何帮助,将不胜感激。谢谢!
您已经在为图像使用数组。 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 在相应索引中包含相关数据,可能会更容易。
我正在制作一个程序,每次点击摩丝时,它会随机加载 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 循环,但不确定如何使用。任何帮助,将不胜感激。谢谢!
您已经在为图像使用数组。 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 在相应索引中包含相关数据,可能会更容易。