Button[] button = new Button[16]; Metro metro; int play_pos = 0; int play_pos_previous = 0; void setup() { size(500, 500); for ( int i = 0; i < 16; i++ ) { button[i] = new Button(); button[i].setup(100+(i%4)*100, 100+(i/4)*100, false); } // Metroの初期化 metro = new Metro(); metro.set(100); // 100[ms]おきにtrueを返す } void draw() { background(0); for ( int i = 0; i < 16; i++ ) { button[i].update(); button[i].draw(); } if( metro.update() ){ // 一つ前の該当ボタンは 50 の色に戻す button[play_pos_previous].c = color(50); // シーケンス箇所を一つ進める play_pos++; if( play_pos > 15 )play_pos = 0; // そのシーケンス箇所は 150 の白色にする button[play_pos].c = color(150); // 古いシーケンス場所として保存しておく。 play_pos_previous = play_pos; } }