2016-11-04 16 views
0

この割り当てはポップアートである必要があり、私はpokeballsを使用することに決めました。一番上の行に1つ、下に1つ、関数を作成するために2つのforループを使用する必要があります。私が抱えている問題は、一番上の行に2つのポケボールを作成する方法です(6ポケボール合計:3つの上と下に3つあります)。関数forループを呼び出す

var RANDCOL = random(0, 400); 
var XBALL = 65; 
var YBALL = 108; 

//dividing tiles 
fill(250, 0, 0); 
rect(0, 0, 130, 200); 
fill(0, 187, 255); 
rect(131, 0, 137, 200); 
fill(0, 0, 0); 
rect(269, 0, 130, 200); 
fill(167, 158, 235); 
rect(0, 200, 131, 199); 
fill(46, 184, 101); 
rect(131, 200, 137, 199); 
fill(255, 0, 0); 
rect(269, 200, 130, 199); 

//pokeball specifications 
var pokeBall = function(x) { 
    stroke(158, 214, 235); 
    ellipse(XBALL, YBALL, 99, 97); 
    fill(0, 0, 0); 
    stroke(0, 0, 0); 
    line(15, 109, 56, 109); 
    line(116, 109, 72, 109); 
    ellipse(64, 108, 19, 16); 
}; 

//loop for top row 
for(var i = 0; i < 3; i++) { 
    var x = i * 134; 
    fill(RANDCOL); 
    pokeBall(); 
} 
+0

のvar xが使用され、なぜ、また指定しますあなたの期待される出力 –

+0

var x = i * 134は、最初のポケボールを取ってそれをもう2回他の2つの四角にループすることになっていて、関数のxパラメータは、ここには、3行2ではないことを除いて、それがどのように見えているのか、Googleのイメージがあります。[image](https://www.google.com/search?q=pop+art+pokeballs&source=lnms&tbm=isch&sa= X&ved = 0ahUKEwiczKzsk47QAhUUSGMKHZ6BA7kQ_AUICCgB&biw = 1920&bih = 943#imgrc = mruoTaTG6KZ_lM%3A) – Smokeyflo

+0

これは本当にループの問題です。私は現時点でこれを試しています: 'for(var y = 3; y <= 3; y ++){ for(var x = 3; x <= 3; x ++){ fill(RANDCOL); pokeBall(); } } – Smokeyflo

答えて

0

まず第一に、あなたが処理機能を使用しているので、setup()関数が呼び出される前に、このコードは、実行されません。実行するためにコピー&ペーストできるMCVEのコードを投稿してください。

とにかく、あなたの目標を達成するには、あなたのpokeBall()関数は、ボールの位置を指定する引数を取る必要があり、それらの座標に基づいてボールを描画する必要があります。あなたはです。は今ではXBALLYBALLの変数を使っていますが、それらを引数に変換し、記述するループのforから渡す必要があります。

例を示します。のは、私はこの機能を持っているとしましょう:

常に座標 100,150で円を描く機能
function drawBall(){ 
    ellipse(100, 150, 20, 20); 
} 

。私の代わりに引数を使用することを変更することができます:

function drawBall(ballX, ballY){ 
    ellipse(ballX, ballY, 20, 20); 
} 

をそして私は、その関数を呼び出し、複数の場所で円を描くように引数を渡すことができます。

drawBall(100, 200); 
drawBall(200, 300); 
drawBall(60, 20); 
+0

ありがとう! forループで関数を1回だけ呼び出すことは可能ですか?ループは関数を3回呼び出すのではなく3回描画するでしょうか?私は関数を3回呼び出すことはforループを持つ目的を破ると思うので、いいえ? – Smokeyflo

+0

同様に、私はこれを行うようにしているので、ポケボールは134x単位で広がっていますが、forループはまったく実行されず、私は多くの異なるものを試しました。 'for(var x = 0; x <= 3; x ++){ var x_one = pokeBall * 134; fill(random(0,400)、random(0,400)、random(0,400)、random(0,400)); pokeBall(68、107、x_one); ' – Smokeyflo

+0

@Smokeyflo関数を3回呼び出すのが単なる例でした。あなたは絶対に 'for'ループから呼び出すことができます。 –

関連する問題