前提・実現したいこと
すいません。勉強し始めて対して時間もたっていなくて、こういう場で質問することも初めてです。一応自分では色々調べてみてもわからなかったので質問します。p5.jsを勉強していたのですが[]が配列だということはわかるのですが、ソースコードに書かれている通り[]の横に二つ目の[]がある場合はどういう意味があるのでしょうか、多次元配列だということまではわかったのですが、一つ目の配列にはfor文のiが入っているまではわかります、なぜ二つ目の配列には番号が入っているのでしょうか。
発生している問題・エラーメッセージ
``
該当のソースコード
JavaScript(p5.js)
1 2```ソースコード 3 4function drawFireFlower(l){ 5 fill(red(c),green(c),blue(c),l); 6 noStroke(); 7 for(i = 0;i< ballCount * thread;i++){ 8 ellipse(balls[i][0], balls[i][1], 3); 9 balls[i] = [balls[i][0] + balls[i][2], balls[i][1] + balls[i][3], balls[i][2], balls[i][3] + 0.01]; 10 } 11} 12 13### 試したこと 14 15いろいろなサイトで知らべて多次元配列という言葉まではわかったのですが、それで調べてみても出てこないです。ここで質問するべきことなのかもわかりませんが、ご教授よろしくお願いいたします。 16 17### 補足情報(FW/ツールのバージョンなど) 18 19ここにより詳細な情報を記載してください。
ballsの定義はどこでしょうか?
すいません。ありがとうございます。こんな皆さんにとっては初歩的な質問にこんなに早く返信してもらえるとは思いませんでした。
長くなってしまうのですが、↓でも大丈夫でしょうか。よろしくお願いいたします。
function draw() {
background(0, 50);
if(vy < 2){
if(fired === false){
lightPower = 0;
for(j = 0; j< thread;j++){
var r = ballV / thread * j;
for(i = 0;i< ballCount;i++){
balls[i + ballCount * j] = [
x,
y,
r * cos(TWO_PI / ballCount * i + (PI / 10 * j)),
r * sin(TWO_PI / ballCount * i + (PI / 10 * j))
];
}
}
fired = true;
}else{
lightPower += 2;
drawFireFlower(255 - lightPower);
if(lightPower > 255){
reset();
}
}
}else{
lightPower += 5;
push();
translate(x, y);
drawFireBall(255 - lightPower);
pop();
y -= vy;
vy -= 0.05;
}
}
function reset(){
x = random() * w;
y = h;
ballR = 10;
vy = 5 + random() * 1.5;
thread = 5;
ballCount = 10;
balls = new Array(ballCount * thread);
ballV = 1.5;
fired = false;
lightPower = 0;
colors = [color(255, 0, 0),color(0,255,0), color(0,0,255),color(255,255,255)];
c = random(colors);
}
function drawFireBall(l){
noStroke();
var rate = 255 / ballR;
for(i=0;i < ballR;i++){
fill(rate * i, l);
ellipse(0, 0, ballR - i + 1);
}
}
回答1件
あなたの回答
tips
プレビュー