arduinoでrandomを扱ったことがある人なら知ってると思うけれど電源を入れてから取り出せるランダムのパターンは常に一定。
これはランダムシードを変更していないからで、しっかりとランダムにしたければ考えなきゃいけないことは色々多くて結構手間。
gamebuinoにはランダムシードを変更するためのAPIがある。
gb.pickRandomSeed();
これは環境光、バッテリー残量、タイトル画面からAボタンでソフトを起動するまでの時間などで決定されるランダムシードを扱うためのAPI。 さすが良く考えられている。
gb.begin();
gb.titleScreen();
の後に書けということだけど、それだけでいいんだろうか。
と言うところを調べてみた。
gamebuino生みの親に作られたSuper Crate Buinoのソースを眺める。
void setup() { gb.begin(); loadEEPROM(); gb.sound.chanVolumes[2] = 1; mainMenu(); world.chooseMap(); } void mainMenu() { gb.titleScreen(logo); gb.pickRandomSeed(); gb.battery.show = false; }
どうやら本当にtitleScreenの後に書けばいいらしい。
忘れずに書くようにしよう。