日記(912)

<前 次>

時の重み

マップシステムについて、だんだん思い出してきました。
マップチップとキャラをまず全部3D空間上に配置してZソートして奥から順番に表示、表示対象をCBWWindowにしても正常にクリッピングして表示、マウス操作対応のため見た目の座標と内部座標の対応、データ部と表示部のプログラムの分離、などなどなど…。

NeoMuplで、なんとなくランダムのくせに選ばれる曲が偏る気がしたので、スキップ率に加えて、時の重みというパラメータをつけて、最近再生されていない曲を優先的に選ぶようなオプションをつけました。
正直、100倍優先にしても数千曲の中だと焼け石に水のような気もしますが、なんとなく水なりの効果はあるような気がしてます。

メテオスもどきはシュートのおかしな挙動を少し改善しました。

忘れていた過去

ここのところメテオスもどきばかりだったので、久々にBomber丸Worldの開発を再開しようと思ったのですが、すっかり何をやっているのか忘れてしまいました。
たぶんマップ表示の再実装を試みるところだったと思うんですが、該当するプロジェクトを開いてもまだ作り始めてもいなくて、どのような方針で作るのかすらわからない状況でした。

ほぼ完成

メテオスもどき、落下メテオによる押し下げも実装して、ドッキング関係もきれいに書きなおして、あとはいくつかの不具合を直して演出をつければ単体としては完成ということになります。
なので、そろそろ本家の開発元のQに問い合わせてみようと思っています。
動画のときもファンサイトキットのときも終了告知のときもつれない返事ばかりでしたが…。

シュート!

久々に本家のメテオスオンラインをやって対戦を楽しみつつ色々調べてました。
タイムアクセル時のメテオの降りかたは通常時の4~5倍程度、シュートして上のカタマリにくっつけた場合はシュートしたメテオの速度などは考慮されない、カタマリ同士がドッキングした場合は下のカタマリのパラメータが優先される、などなど。
で、今日作ったのはシュートして固まりにくっつけたときの正しい挙動です。
つまり、下にくっつかずに中に入り込みます。

古いものを優先的に

今日はNeoMuplいじりました。
今回は、ランダム再生のとき、最近再生されていないものを若干優先するような変更をつけました。
最近なぜか同じ曲が短時間に何度も選ばれるということが起こっているので、それをある程度防ぐために確率に手を加えたのです。

還元もできました

メテオスもどき、ついに還元が実装できて、メテオスの基本ルールはあらかた網羅できました。
他には、メテオの移動可能範囲の表示、落下メテオやシュートしたメテオはつかめないようにする、打ち上げたメテオの内訳を表示する、などの細かい機能を色々つけました。
そして、最初手抜きで作っていた自然発火しないメテオの並びを探すアルゴリズムも改良して、得点もつけました。
あとは、細かいパラメータなどを実装するだけです。

エラーを起こす

メテオスもどき、本来ありえないところにカタマリが発生してゲーム進行に支障が出る深刻なバグがあったので、その解決のために、メテオに安全装置をつけました。
つまり、何もないところにカタマリをセットしようとしたり、何もないところに色を設定しようとするとエラーが起こるようにしたのです。

<前 次>