前提・実現したいこと
キーを押すと、順番に光る(色が変化)機能を実現させたい。
https://gamebox.gesoten.com/zakzak/game/265
このURLのような感じのゲームを作っています。
7/19までに提出のファイルのため、できれば早い回答を望みます。
無理そうだったら別の案を考えます。
発生している問題・エラーメッセージ
色は変化するが、一番最初の画面にも表示されてしまい、うまく行かない。
また、順番に変化させることができない。(時間差で変化させたい。)
該当のソースコード
saisyonotabu
1void setup() { 2 background(255); 3 size(500, 690); 4 fill(0); 5 textAlign(CENTER, TOP); 6 textSize(50); 7 text("Tap to key'1'", width/2, height/2-30); 8 text("EXIT,'esc'key", width-180, height-70); 9 music(); 10 flag=0; 11 fla=0; 12} 13 14void draw() { 15 tikatika2(); 16tikatika3(); 17}
void Clear(){ if(flag==0){ background(255,255,255); fill(0); textSize(50); text("GAME CLEAR", width/2, height/2-50); } }
void Over(){ if(flag==0){ background(255,255,255); fill(0); textSize(50); text("GAME OVER", width/2, height/2-50); } }
void Play() { if(flag==0){ background(0, 255, 255); fill(255); rect(22.5, 10, width/2, 80); rect(295, 10, 80, 80); rect(397.5, 10, 80, 80); rect(22.5, 150, 120, 120); rect(22.5, 330, 120, 120); rect(22.5, 510, 120, 120); rect(190, 150, 120, 120); rect(190, 330, 120, 120); rect(190, 510, 120, 120); rect(357.5, 150, 120, 120); rect(357.5, 330, 120, 120); rect(357.5, 510, 120, 120); fill(0); text("1", width-65, 25); text("brain limit", 148, 25); } }
void STAGE1(){ if(flag==0){ background(255); Play(); fill(0); textSize(50); text("STAGE 1", width/2, height/2-100); text("'3'key START",width/2,height/2); } }
void keyPressed() { switch(key) { case '1': STAGE1(); flag=0; fla=0; break; case '2': Clear(); flag=0; fla=0; break; case '3': Play(); flag=1; fla=1; break; case '4': Over(); flag=0; fla=0; break; case'5': blinking(); flag=0; fla=0; break; case'6': reproduction(); flag=0; fla=0; break; default: } }
void mousePressed() { if (22.5<mouseX&&mouseX<142.5&&150<mouseY&&mouseY<270) { reproduction(); song2(); } else if (357.5<mouseX&&mouseX<477.5&&330<mouseY&&mouseY<450) { Clear(); song2(); } else { Over(); song2(); } }
void stop() { song1.close(); //サウンドデータを終了 minim.stop(); super.stop(); } void music() { minim = new Minim(this); //初期化 song1 = minim.loadFile("bgm.mp3"); //bgm.mp3をロードする song1.play(); //再生 } void song2() { minim = new Minim(this); //初期化 song2 = minim.loadFile("clickmusic.mp3"); song2.play(); //再生 song2.rewind(); //再生が終わったら巻き戻しておく }
int flag=0;//0のときはfillの値を直さない。(元のまま)1のときは、fillの値を変えるとき。 int fla=0; void tikatika2() { if (flag==0) { fill(255); } else { //rprintln(flag); fill(0); flag=0; } //println(flag); //noStroke(); rect(22.5, 150, 120, 120); } void tikatika3() { if (flag==0&&fla==0) { fill(255); } else { //println(fla); fla=0; fill(0); } //println(fla); //noStroke(); rect(357.5, 330, 120, 120); }
試したこと
tikatika2()とtikatika3()のタブの移動。
補足情報(FW/ツールのバージョンなど)
Processingの最新バージョンを使っています。