class Scene { Character chara; Floor floor; color charaColor; // キャラクタがジャンプしたときの背景色 int bgAlpha = 0; // 背景色の透明度 Scene(String name) { chara = new Character(name, 100, 30); floor = new Floor(name, 90); // キャラクター別に背景色を設定する if(name == "dodon") { charaColor = color(#efed00); } else if(name == "horba") { charaColor = color(#32a061); } else if(name == "kuka") { charaColor = color(#8a3792); } else if(name == "popo") { charaColor = color(#e9b0d1); } } void update() { // 背景不透明度が0以上のとき、背景を塗りつぶす if(bgAlpha > 0) { noStroke(); fill(charaColor, bgAlpha); rect(0, 0, width, 120); bgAlpha -= 16; if(bgAlpha < 1) bgAlpha = 0; } floor.update(chara); // キャラがジャンプしたら背景の不透明度を設定する if(!is3DMode && chara.speedY == -15.0) { bgAlpha = 255; } float pCharaX = chara.charaX; chara.move(); chara.update(); if(pCharaX % width > chara.charaX % width) { floor.buttonPlayed = null; } } void mousePressed() { floor.mousePressed(); } // キャラクターのスピードを変更する // スピードは3段階 void changeSpeed() { if(chara.speedX >= 10) { chara.speedX = 2.5; } else { chara.speedX *= 2; } } }