日記(914)

<前 次>

縦点火もできました!!

縦点火も実装できました。
一部アルゴリズムを間違えて縦点火が逆噴射になっちゃったり、くっついてないのにドッキングする問題を発見したり、まだまだ問題もあるわけですが、とりあえずなんとかメテオスの基本ルールは実装できたかなというところです。
同時点火ボーナスや最下方点火ボーナスなども実装して、あとはゲームオーバーやシュート相殺なども実装すればいよいよゲームとして成り立つようになります。

横点火ができました

まぁ、色々問題も孕んでいるわけですが、なんとか横点火も実装できました。
上昇と下降が同時に起こることによるすり抜け、メテオの数え漏れによる存在しないカタマリのデータの蓄積、Y方向オフセット値の増大による著しい速度低下、カタマリがうまくドッキングされない、点火されるはずのメテオが点火されない、カタマリの中のメテオを引っ張り出したり巻き込んだりするとカタマリの形が変わる、直ったものもあればいまだ調査中のものもあります。

落下メテオと高速移動

切り離しも上方逆L字点火も実装できそうな気がしてきました。
今のプログラムでは横点火の後に縦点火を処理しているので、縦点火のときに横点火の形跡を見つけたら同時点火として処理するのです。
全消しの判定も結構簡単に作れそうな気がします。
で、今日作ることができたのは、落下メテオの出現と、高速移動。
落下メテオは時間がたつとちゃんとたくさん降るようになってくれます。
これでずいぶんとメテオスらしくなってきました。
いまだに点火しても打ちあがらないんですけどね!

無理矢理止めてみる

今日はNeoMuplでMIDIの再生が止まらなくなる問題を半ば強引にですが解消しました。
マシンの動作が非常に重たいときに確率的に起こるものなのでデバッグしにくいのですが、とりあえず無理矢理全部止めれば何とかなるだろうと思ってやったので、本当に解決しているかどうかはわかりません。

メテオスもどきはドッキング処理を作っていよいよ点火の処理が作れそうなところです。
シュートの挙動も改善しましたし、ドッキングも再帰処理により案外簡単に記述できましたし…。
問題は切り離し点火だ!!
切り離し点火をとりあえず実装するのは難しくないんです。
難しいのは、必要以上の切り離しをどう抑制するかなのです。
今考えているアルゴリズムではどうしても上方逆L字点火が切り離されてしまうのです。

ドッキングの初歩

メテオスもどき作ってました。
メテオスのプログラムで最も難しい部類に入ると思われるドッキング関連の処理です。
それでも今は静止したメテオとシュートされたメテオのドッキング、つまり着地だけなので楽なほうなのです。
でも本家はあらゆるパターンのドッキングに加えて、いろんなアイテムでカタマリがかき回されるから桁違いに複雑なんだろうなぁ…。
これができたらいよいよ打ち上げることができるようになります。
ちなみに、点火の処理自体は既に出来ていて、飛ばずに燃えカスになります。

パツーンと

シュートを作りました。
メテオスもどきの。
まだメテオ同士の当たり判定を作っていないので一度飛ばしたら最後、二度を地に足つけることなく奈落の底まで落ちていきますが。
しかしこれで整然としたメテオの並びを崩すことができるようになったので移動処理などのテストもしやすくなりました。
点火のアルゴリズムなんかも考えてみたので近日中には打ち上げることが出来るようにはなるでしょう。

IDirectMusicTool

今日はプログラミングコーナーを更新しました。
国内ではあまり記述を見かけないDirectMusicツールについて書きました。
Bomber丸Worldで使う予定の技術なのでちょっとお披露目です。
今検索したところ、海外でもあまり丁寧な解説してくれてるサイトはないみたいですね。

<前 次>