import processing.sound.*; class Layer { Layer() { } void setup() { button = new Button[16]; for ( int i = 0; i < 16; i++ ) { button[i] = new Button(); button[i].setup(100+(i%4)*100, 100+(i/4)*100, false); } // 再生音声ファイルの読み込み sound = new SoundFile(sq.this, "CHH.wav"); } void update() { // ボタンが押されているなら if( button[play_pos_previous].status == true ){ button[play_pos_previous].c = color(200); } // 一つ前の該当ボタンは 50 の色に戻す else{ button[play_pos_previous].c = color(50); } // シーケンス箇所を一つ進める play_pos++; if( play_pos > 15 )play_pos = 0; // そのシーケンス箇所は 150 の白色にする button[play_pos].c = color(250); if( button[play_pos].status == true ){ println("Make some sounds"); sound.play();// 音を鳴らす } // 古いシーケンス場所として保存しておく。 play_pos_previous = play_pos; } Button[] button; SoundFile sound; int play_pos; int play_pos_previous; }