2017-12-16 4 views
1

私はちょっとここです。私はKhanアカデミープログラミングコース(主にJavaScript)を取っているし、ちょっとプロジェクトについている。それはキャンバスに落ちている雨滴を作って、雨が降ったら、一番上に戻ってリセットするという挑戦です。配列を使って、ランダムな位置でドロップを生成し、キャンバスに落とすことができましたが、配列の使用のためにトップに戻って再スタートするのに問題があります。長いテキストを申し訳ありません。ここに私のコードは次のとおりです。javascriptプロジェクトと配列に関する問題(雨が降る)

var dropX = [40]; 
var dropY = [0]; 
var snowX = [40]; 
var speed = 1.5; 
var ex = 0 ; 
var i = 0; 
var fall = dropY[i]; 
noStroke(); 


var rain = function(){ 

var fall = dropY[i];  
var ok = dropX.length;  
for(var i = 0; i<100; i++) { 

    if (fall<2100){ 
    background(192, 224, 237); 
    fill(23, 123, 143); 
    ellipse(dropX[i],dropY[i],5,5); 
    fill(224, 213, 213); 
    rect(snowX[i],dropY[i],5,5); 
    dropY[i]+=speed; 
    dropX.push(random(0,400)); 
    dropY.push(random(-1650,0)); 
    snowX.push(random(0,400)); 
} 

} 
for (i = 0;i<100; i++) { 
    i++; 
    fill(45, 136, 189); 
    ellipse(dropX[i],dropY[i],5,5); 
    fill(255, 255, 255); 
    rect(snowX[i],dropY[i],5,5); 
}}; 

draw = function() { 
rain(); 


}; 

https://www.khanacademy.org/computer-programming/spin-off-of-project-make-it-rain/5960057721651200

カーンアカデミーのコードエディタは、私の知る限りではprocessing.jsを使用しています。助けやヒントありがとう!

答えて

0

これらのライン:

var dropX = [40]; 
var dropY = [0]; 
var snowX = [40]; 

すべて1. dropX[0]snowX[0]両方のサイズの配列を作成するには、40の値を有し、dropY[0]0の値を有します。

さらに、ループは0から100になりますが、40にはなりません。

これは正しく配列を初期化します:

var dropX = []; 
 
var dropY = []; 
 
var snowX = []; 
 
var i; 
 

 
for(i = 0; i < 100; i++) { 
 
    dropX[i] = 40; 
 
    dropY[i] = 0; 
 
    snowX[i] = 40; 
 
}

関連する問題