日記(978)

<前 次>

4面までできました

メモちらし最新版を公開しました。
ファイル切り替えでますます便利に!
って、本当に役立つかどうかは正直よくわからないんですけれど。
そもそも、粒子が沢山あって、それらが相互作用しているようなプログラムが作りたいと思って、それにちょっとしたメモ程度の文章をくっつけられたら、と思って作ったものなので、粒子が動きさえすればそれでいいって感じだったんですよね。
私自身はかなり便利に使っていますが、最初に作った動かし方の規則に問題があったらしく、粒子が増えると腕が半端じゃなく伸びてしまいます。
メモちらしのページでは実行画面の画像も公開しました。

ClipCaptorもこっそりバージョンアップしておきました。
内容は、ファイルの出力先を任意に選べるようにしたというもの。
これでいちいちClipCaptorのインストールディレクトリと本当に画像が必要なディレクトリを行ったり来たりする必要がなくなったのです。
この機能追加をした理由は、ふにゃさんの攻略ページを作る際に大量の画面写真が必要になったからです。

で、そのきっかけとなったふにゃさんの攻略ページ、4面まで書けました。
こうやって文章にしてみるとやっぱりむらのあるステージ編成ですね。
しかしああいうステージはやる気のある日に一日で作ってしまったほうが良いので今更編集する気はありません。
せいぜい攻略ページで言い訳でもしておきます。
そうそう、使った画面写真の数は16枚です。
撮り直しも何回かあったので20枚くらいはあったかも。

お前はいい奴だった。

ふにゃさんのストーリーが完成しました!
というほど大層なストーリーじゃないんですがね。
それはそうと、ふにゃさんの標準ステージはそれなりに中々難しいらしいので、今更ながら、攻略ページを作り始めました。
ひとまずはステージの全体像だけ…。
背景がないのは、背景だけ小さく描かれていて、ゲーム画面以外ではまともに表示されないからです。

すっごく久々にメテオスDB更新しました。
とはいってもベスト作品2つ追加だけなんですけどね。

それと、ミディビも更新しました。
まず、MIDIが多くなるとページが非常に重くなるので、複数ページに分けて表示するようにしたこと。
とりあえず今は軽さ優先で1ページ5曲までの表示となっていますが今後利便性との兼ね合いで変化することはありそうです。
そして、ルールも作りました。
何かをしてはいけないというより、何をやってよいか、それが伝われば嬉しいです。
それと、こっそりIPの記録も。何かあったときのためにね。

即応性

メモちらしにファイル切り替え機能を追加しました。
内容的にはファイルを開くダイアログでファイル名を取得して、以前からあったデータロードの関数に渡すだけでした。
邯鄲ならさっさとやってればよさそうなものですが、こういうのを面倒くさそうだからと後回しにするのが私なのです。
そしてすぐにはアップしないのも私です。

最近キーボードの調子が悪いです。
即応性が悪いんですよ。
確実にkの次にiを押したはずなのにいkになったり。

バックアップできなかった

ミディビの自動バックアップ機能を作ろうと頑張ってみましたがダメでした。
アプレットのstopメソッドで記録してstartメソッドで呼び出しというのを試みたのですが、どうにもInternetExplorerの場合ページ移動しただけで全リソース解放してしまうようで、どのタイミングで初期化を入れてもどのタイミングで記憶してもことごとく消えてしまいます。
お絵描きアプレット等ではいったいどこにデータを保管しているのか不思議です。
何か変数に修飾詞をつければ保持されるのでしょうか。
それとも特別なデータの置き場所がどこかにあるんでしょうか。
まだ調べる必要がありそうです。

Boost--

NeoMuplの読み込みのほうの高速化もできたのでアップしました。
これで大分完成に近付きました。
OGGの演奏についてはNeoMupl側では何も対策はしないつもりです。
OggVorbisはそもそもあまり聞きませんし、それにDirectShowへの追加機能としてユーザーが任意につけられる機能なのです。
曲名自動取得とファイルからループ位置を取得についてはできそうなら挑戦してみる、といった程度ですね。

どうもBoostはVC++6ではRegexとかSpiritとか、Boostの最大の魅力にあたる部分が使えないことが多いようです。
VC++.NET2003なら全部対応らしいですが。
VC++2005EEはもってるけど正直あまり使おうという気になりません…。

ハ、ハラが痛いので今日はこの辺で…。

100倍速くなる!!

RPG±0、どうしようか悩んでます。
正直、ずっと前からVBじゃ手に終えなくなりそうな気がしてならなかったんですよ。
VBじゃポインタが使えないし、オブジェクト指向も中途半端で扱いにくいし、そもそも遅いし、あまりいいことがなさそうな気がしてたんですよ。
しかし、だからといって全くできないわけでもないんですよね。
このままVBで押し通すか、それとも別の言語で1から作り直すか、いずれにしても具体的な実現方法を考えないことには始まらないんですよね。
とにかく、いけるかどうか判断できないことには中止も続行もできません。

NeoMupl進めてみました。
曲数が多くなるとリストの読み書きが異常に遅くなるのでその対策を。
2500曲程度で最低7秒かかるみたいなんですよね。
前のアルゴリズムだと処理時間がO(n2)なので5000曲あれば約30秒かかる計算になります。
気の長い人なら待てないこともなさそうですがやっぱり遅いものは遅いです。
そこで、ファイルの内容がINIに近いのでINIファイル関連のAPIを使ってみたのですが、結果はというと惨敗。
以前の方式と比べて、1項目編集するたびにファイルの読み書きが入るので一つ一つの動作が半端じゃなく遅いんですよ。
しかも毎回項目を探すから処理時間のオーダーは変わらずO(n2)となるはずです。
たとえもっと効率がよかったとしても、同じ2500曲で50秒以上というのはいくらなんでも時間掛けすぎです。
さすがに気の長い人でも待ちきれません。
そこでしぶしぶ汎用の読み書きクラスを使うのをやめて、使いまわしの効かない専用のコードを書いてみたのですが、これがすごくて…。
さっきと同じ条件でなんと書き込み時間70ミリ秒ですよ!!!
全く誇張なしで100倍速いんです!!!
しかも処理時間のオーダーはO(n)なので、データが2倍になれば前より更に2倍効率がよくなるんです!!!
もう!こうなるとわかってりゃあんな使いまわしは効くけど遅いクラスなんて作ってなかったのに!!
そうそう、今日作ったのは書き出しだけで中途半端なので最新版アップはなしです。

爆ボンの敵

敵キャラのページコンプリートしました。
多分これで全ての敵キャラのことは書き終えましたよ。
今度はどきどきモードのアイテムについて書こうと思います。

<前 次>