コルーチンで記述するシーケンスは「○○した後 n 秒休んで××する」みたいな
相対時間で書くのは楽ですが、「時間が n のときに○○する」みたいな絶対時間
指定は厳しいですね。
// 0秒地点
for (int i = 0; i < 10; i++ ) { 10回繰り返す
generate_enemy(&helico, 240-48 , -32, 0); ヘリを出して
co_resume(15); 15フレーム休む
}
generate_enemy(&tank, 240+32 , 128, 0); 戦車を出して
co_resume(120); 2秒休む
さて、0秒地点からピッタリ3秒後に敵を出したい場合はどうすれば……。
タイミングを計れば書けないことも無いけど、前後のウェイト量を調整しないと
いけないので、息をするのも面倒でそのうち死にます。
あれ? これって、いつか経験したような……そうだ、MMLだ!あれも音符の途中
に何か別のコマンドを挟みたい場合、ノートを分割したり音長を調節してから追
加しなければならず面倒でした。死にそうなときは情熱でカバーしてました。
それがピアノロールの時代になって、ノートをステップ入力(相対時間指定)し
つつ、コマンドは後から絶対時間で挿入する、みたいなことが出来るようになり
便利になったものです。
というわけで敵ジェネレータを、コルーチンジェネレータと敵生成コルーチンに
別け、絶対時間指定でコルーチンを生成し、そのコルーチンでは相対時間指定で
敵を生成すると、いいとこどりが出来るんじゃないかなぁと思った次第です。
まぁいい加減、ソースになんでも直接記述しようとするのを止めたほうがいいと
いう伝説もあるにはあるんですが。
devkitPro が GSoC (Google Summer Of Code) に採択されたよーですね。
http://wiki.devkitpro.org/index.php/Google_Summer_Of_Code
ザッと見て目に付いた目標は、ツール類の充実について。
自分も必要最低限のツールは自作していますが、やはり効率が全然違うので、ゲー
ムを製作する上でツールの存在は重要だなぁと感じています。プログラミンギング
環境が無い人に作業を委託出来るかもしれないしね。(イマドキ CUI だと厳しそう
ですが)
PernEditはなかなかナイスなツールみたいなので、GSoCでより良い方向へ進化す
るといいですね。