2017-10-10 4 views
0

私はマウスをクリックするたびにランダムに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); 
} 

私はどこかでループに使用できることをかなり確信しているが、私はどのように肯定的ではありませんよ。どんな助けもありがとう。ありがとう!

答えて

0

イメージ用に既にアレイを使用しています。 dieImages配列は、基本的に画像変数の束を保持します。なぜあなたの乱数に同じことをしないのですか?

構文は次のようになります。

for(var i = 0; i < randomNum.length; i++){ 
    randomNum[i] = floor(random(0,6)); 
} 

は、その後、あなたimage()呼び出しがインデックスとしてrandomNum変数を使用する:あなたはforループを使用するように短縮でき

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(var i = 0; i < randomNum.length; i++){ 
    image(dieImages[randomNum[i]], i * 100, 0); 
} 

サイドノート:それはあるかもしれないあなたはこのように短縮することができ

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); 

:ランダムな数字は我々だけで見たように、その後、image()行はこの可能性があり、アレイ内にある場合関連するデータを対応するインデックスに保持する2つのparallel arraysではなく、イメージと位置を保持するオブジェクトを使用するようにこのコードをリファクタリングすれば、より簡単です。

+0

こんにちは、 'randomNum.length'がここで何をしているのか教えてください。 –

+0

@KatK親友はGoogleです。大量の結果を得るには、「JavaScript配列の長さ」のようなものを検索してみてください。あなたがそれらを見てより具体的な質問がある場合私に教えてください。 –

関連する問題