日記(941)

<前 次>

ListViewとDataBinding

ふにゃさんが一区切りついたのでナマライザ作ってました。
ListViewでもDataBindingが使えるかなと思ったのですが、どうにもDataBindingが適用できるのはどうでもいいプロパティばかりで、肝心のItemsプロパティには適用できなかったようです。
おかげで自分で表示を更新するプログラムを書かねば…って、本来これが当たり前なんですけどね。
まあ、表示そのもののプログラムは、表示するべきデータを用意するプログラムと比べればずっと単純で楽な作業であるはずなのでいいと思うんですけどね。

おんなのこです。ぶどうがすきです。

ふにゃさん更新しました。
まだやるべきことはあったのですが小出しにしていきます。
ファイルサイズが結構大きくなっていますが、これは一部ファイルの形式をプログラムから使いやすい形式にしたのと、いちいちステージデータをコピーして作っているリプレイデータの同梱が大きく出ています。
それで、今回から、最新版に限って、最小限のファイルのみを入れたアーカイブも配布し始めました。
需要はなさそうな気もしますが、一応色々バリエーションがあるほうがいいと思いまして。
今日プログラム的にやったのは、エディタのシフト移動の改善と、操作説明でのシークレット機能の無効化です。
一方まだできていないのは、
・せっかくなのでもう一つぐらいシークレット
・無重力室へようこそ!
・ステージ遷移時のフェードアウト
・エディタからネット上に自作ステージを公開
・エディタでネット上からみんなのステージをダウンロード
などなど。
やりたいこと全部できたら、今度こそ本当に本当の完成で、開発終了ということになります。

間に合った!

本当は今日やろうと思えば更新できたのですが、やっぱり時間がなくてうまくチェックできていない状態でアップするのはよくないので明日更新することにしました。
今日やったことは、リプレイの演出の改良、つまり本当のリプレイの完成。
そして、今更ながらふにゃの動きに関する不具合の修正。
この不具合は本当はずっと前からわかっていたことなのですが、それによってふにゃの動きが変わってしまうため、改善に踏み切れないでいました。
ただ、今度リプレイを実装するともう本格的に手遅れになるため、今回を改善の最後のチャンスとして、思い切ってみました。
もちろん、今まで放置できたのだから重大なバグであるはずがないのですが、ふにゃの向きに関するバグなので、見た目に左右非対称で不自然ですし、もしかしたらどこかで向きが違うために変な動きになる可能性もあるということで、修正することにしました。
あと、リプレイに関しては、にっこりキーが記録されていなかったので、それも記録するようにしました。
これもこれで一度公開してからでは修正できない部分だったので、なんとか間に合ったというところです。
あと、内部的にゲーム本編とテストプレイのプログラムを統合しました。
これによる大きな違いはありませんが、今後の改良の際に両方に反映するのを忘れてテストプレイだけ古いということはなくなるはずです。

そういえば、そろそろスクリプトのほうも進めてやるかと思い、久しぶりに見てみたら、全然わからなくなっていました。
元々方針を間違えていたのは明らかだったのですが、ちょっと今はそれを修正することはできそうにもありません。

リプレイ完成!!

なんだか色々ありましたがとうとうリプレイが完成しました!
細かい演出は後回しにしているため多少そっけないところがありますが、基本機能としては十分に出来上がっているはずです。
listにpush_backしたらそれまでのendイテレータが無効になることに気付かずデータが壊れてしまったりとか、設定を使ってしまった後に設定変更を入れてしまって実際には設定が反映されなかったりとか、面倒くさい設計にしていたのを忘れて簡単に実装したらうまく動かなかったりとかしましたが、なんとか原因を突き止めて全部何とかしました。
ところで今気になっているのですが、ふにゃさんについて実装したい機能は現在結構たくさんあって、全部入れてこうとすると次の更新がどんどん先延ばしになっちゃうんですよね。
結構すぐ修正が必要だったものもあるし、こまめに更新していったほうがいいのか、それともどっちみち後でアップデートするから後でまとめて公開したほうがいいのか、悩みどころなのであります。

リプレイは最初のメインメニューのところで流れますが、今回録画した中にはかなりの割合で弟の作った面が混じってます。

記録する確率

今日はなぜかVBがよく落ちます。
実行した瞬間に不正な処理をしたためどうのこうのと因縁をつけられて。
まあ、実行する直前に保存する癖をつけてるので実害はないのですが、やはりどこか気持ち悪いです。
VBじゃなくて私のプログラム自体に問題があるならば実害があるわけですしね。

ふにゃさんの本編のほうは、リプレイの記録が出来上がったところで、記録しながらテストプレイ中です。
リプレイデータは、ステージデータの必要な部分を切り出して、更にキー入力情報や更に必要なデータなどを付加して、形式上はステージファイルと同じ方法で記録されます。
リプレイデータの記録に関しては設定プログラムで設定してやらないと全く保存されないので、プレイする前に、クリアしたときに自動的にリプレイ記録する確率、ミスしたときの確率、記録するファイルの最大個数、手動で保存するときに使うボタンを設定してやります。
クリアしたときの自動セーブは適当でいいのですが、ミスしたときの記録はあまり確率を高くすると難しいステージなどでは全部が一つのステージの苦難の記録になってしまって楽しくないので、確率を低めに設定しておくとよさそうです。

いろいろ

ふにゃさん、リプレイデータ記録のため、内部的に地味なところで改良を重ねていました。
それはもう、ステージファイル中の画像読み込みとか、クラス同士の無駄な依存関係を減らしたりとか。

キー状態記録

ふにゃさんのリプレイ記録・再生を作ってました。
最初記録と再生は別々のクラスで別々のファイルに作っていたのですが、同じデータを扱うのに別々のファイルにプログラムを書いていたのでは不都合があるということで同じファイルにまとめて書くことにして、そうすると別々のクラスに書くこと自体がなんだか面倒になってきて、結局同じクラスに記録・再生の両方の機能を持たせることにしました。
とりあえず今日のところは両方ともキー状態の保持と再生は出来上がり、対応するステージデータとまとめてファイルに記録することが出来ればもう完成になるということになります。

<前 次>