###初心者で初質問です。Processingで単純な脱出ゲームを作っています
4つの画面遷移で、1つ目がドアのある部屋、それ以外は小さな箱のある部屋です。はじめは最初の扉のドアと2つ目の部屋の箱のみがあり、後の部屋は背景のみです。1つ箱をクリックするごとに次の部屋の箱が出現し、4つ目の部屋の箱をクリックしたのち初めの部屋のドアをクリックするとクリアにしたいです。
found an extra{character without a } to match it.
```Processing int scene = 1;//ステージ boolean a = false; boolean b = false; boolean c = false; boolean d = false; boolean e = false; boolean f = false; boolean g = false; boolean h = false; boolean i = false; void setup() { size(480, 480); } void room() {//背景 fill(#03FC15); rect(0, 0, 480, 370);//上側グリーン fill(#FC03E0); rect(0, 370, 480, 110);//下側パープル fill(0); //移動スイッチ rect(0, 215, 40, 40); rect(440, 215, 40, 40); textSize(50); fill(255); text("<", 0, 250); textSize(50); fill(255); text(">", 445, 250); } void draw() { if (scene == 1) { room(); fill(#FC0303); rect(330, 140, 100, 230);//扉 初期レッド fill(0); circle(410, 250, 20); if (a) { room(); fill(#FC0303); rect(330, 140, 100, 230);//扉 初期レッド fill(0); circle(410, 250, 20); if (c) { room(); fill(#FC0303); rect(330, 140, 100, 230);//扉 初期レッド fill(0); circle(410, 250, 20); if (b) { room(); fill(#FC0303); rect(330, 140, 100, 230);//扉 初期レッド fill(0); circle(410, 250, 20); i = true; if (i) {//扉クリック room(); fill(0); rect(330, 140, 100, 230);//扉 クリック後ブラック fill(0); textSize(30); text("GATE OPEN....!", 100, 220); //---------------------------------------------------↑ドアの部屋 } else if (scene == 2) { room(); fill(#AFAFAF); rect(290, 320, 80, 80);//カギ1} if (a) {//a = カギ1GET room(); textSize(30); fill(#FF0000); text("YOU GET A KEY1 !", 100, 280); c = true; //ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー↑2つ目の部屋+カギ1 } else if (scene == 3) { room(); if (d) {//カギ2出現 room(); fill(#03FFF9); rect(290, 320, 80, 80);//カギ2 e = true; if (f) {//カギ2GET room(); textSize(30); fill(#FF0000); text("YOU GET A KEY2 !", 100, 280); g = true; //ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー↑3つ目の部屋+カギ2 } else if (scene==4) { room(); } if (g) {//カギ3出現 room(); fill(#FAFF03); rect(290, 320, 80, 80);//カギ3 if (h) {//カギ3GET room(); textSize(30); fill(#FF0000); text("YOU GET A KEY3 !", 100, 280); b = true; //ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー↑4つ目の部屋+カギ3 } } } } } } } } } } void mousePressed() { if (scene == 1) { if (mouseX < 40 && mouseX > 0 && mouseY > 215 && mouseY < 255) { scene = 4; } if (mouseX < 480 && mouseX > 440 && mouseY > 215 && mouseY < 255) { scene = 2; } //if (i) {//扉クリック //if (mouseX > 330 && mouseX < 440 && mouseY > 140 && mouseY < 370) { //b = true; //} //ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー↑ドアの部屋 } else if (scene == 2) { if (mouseX < 40 && mouseX > 0 && mouseY > 215 && mouseY < 255) { scene = 1; } if (mouseX < 480 && mouseX > 440 && mouseY > 215 && mouseY < 255) { scene = 3; } //if (c) {//カギ1拾ってからカギ2クリック //if (mouseX > 290 && mouseX < 370 && mouseY > 320 && mouseY < 400) {//鍵1クリック //d = true; //} //ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー↑2つ目の部屋 } else if (scene == 3) { if (mouseX < 40 && mouseX > 0 && mouseY > 215 && mouseY < 255) { scene = 2; } if (mouseX < 480 && mouseX > 440 && mouseY > 215 && mouseY < 255) { scene = 4; } //if (e) { //if (mouseX > 290 && mouseX < 370 && mouseY > 320 && mouseY < 400) {//鍵2クリック //f = true; //} //ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー↑3つ目の部屋 } else if (scene == 4) { if (mouseX < 40 && mouseX > 0 && mouseY > 215 && mouseY < 255) { scene = 3; } if (mouseX < 480 && mouseX > 440 && mouseY > 215 && mouseY < 255) { scene = 1; } //if (g) { //if (mouseX > 290 && mouseX < 370 && mouseY > 320 && mouseY < 400) {//鍵3クリック // h = true; //} } } void mouseClicked() { if (scene == 1) { if (i) {//扉クリック if (mouseX > 330 && mouseX < 440 && mouseY > 140 && mouseY < 370) { b = true; } else if (scene == 2) { if (c) {//カギ1拾ってからカギ2クリック if (mouseX > 290 && mouseX < 370 && mouseY > 320 && mouseY < 400) {//鍵1クリック d = true; } else if (scene == 3) { if (e) { if (mouseX > 290 && mouseX < 370 && mouseY > 320 && mouseY < 400) {//鍵2クリック f = true; } else if (scene == 4) { if (g) { if (mouseX > 290 && mouseX < 370 && mouseY > 320 && mouseY < 400) {//鍵3クリック h = true; } } } } } } } } } }
言語はProcessingです。
}を追加したり、減らしたり試したのですがうまくいきません。
このままではコードが見づらいので、質門を編集し、<code>ボタンで、出てくる’’’の枠の中にコードを貼り付けてください
ありがとうございます。すぐに編集します!
少なくとも、質問のソースを私の手元でコピペしたものでは{ } の対応は合っているようです。
いずれにしろ、無闇に
> }を追加したり、減らしたり
して対応すべきではありません。少なくともProcessingのIDEを使っているなら、[CTRL]+Tでソースを整形、インデントを付けてくれます(Windowsの場合。他ではキーバインドが違うかも知れません)。{ }の対応ぐらいであればそれで見えるようになるでしょう。
しかし...
boolean a = false;
boolean b = false;
boolean c = false;
boolean d = false;
boolean e = false;
boolean f = false;
boolean g = false;
boolean h = false;
boolean i = false;
とか、
}
}
}
}
}
}
}
}
}
}
とか、それだけでバグの温床です。
シンボルの名前には適切な語句を使うこと、処理を適宜関数に切り出すこと、などをすべきかと思います。

回答1件
あなたの回答
tips
プレビュー