2017-10-10 83 views
0

我正在製作一個程序,每次單擊mouss時將隨機化並加載6個不同的圖像。關於縮短我的p5.js代碼的建議(for循環?)

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

您已經在爲圖像使用數組。 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,則更容易。

+0

嗨,你能告訴我什麼'randomNum.length'在這裏做? –

+0

@KatK你最好的朋友是Google。嘗試搜索諸如「JavaScript數組長度」之類的內容以獲得大量結果。在通讀這些問題後,如果您有更具體的問題,請告訴我。 –