日記(951)

<前 次>

エクスプローラ型

Bomber丸World、C#で作るかC++で作るかということを考えていましたが、やはり今まで通りVC++6で作ることに決めました。
今まで作ったものの資産が多少なりともありますし、手馴れている分C#よりも速くできそうな気がしますし、今やっているスクリプト作成講座はずばりこのゲームのためですし。
それでも、最後までVC++6で作るということが完全に決定したわけではないので、C#に移行する場合の労力が最低限になるようにできるだけC#との違いが少なくなるようなコードを作ろうと考えています。
コレクションの要素全てにアクセスするときはただ単純に短くなるだけだし、テンプレートがジェネリックになったり、deleteが不要になったり、形式的な違いが大半だと思うので、アルゴリズムの方面では多分大丈夫だと思うのです。
もっとも、WindowsAPIやDirectXを直接(とはいっても現状YaneSDK経由で)扱うプログラムとC#での.NETプログラミングとでは手法がかなり違うので、そのあたりはかなり厄介です。
括弧の中にYaneSDK経由と書いたのですが、.NETのYaneSDKはVC++6のものとは全く、というよりもはや根本から構造が違うので、今まで楽してた部分をそっくり自分で書かなければいけない可能性があるのです。
もちろん、YaneSDKの中にはC++という言語と標準ライブラリの不足を補う部分が数多くあるので、言語機能と標準ライブラリが強力なC#ではそれらの面倒ごとをある程度は補ってくれるのでしょうが。

ナマライザの開発を進めてます。
フィルタ機能はひとまず置いといて、エクスプローラ型表示を作ろうと試みています。
エクスプローラ型表示というのは、つまり、どのファイルにどれだけアクセスがあったのかというのを、視覚的にわかりやすく階層構造で表示するというものであります。
ディレクトリアイコンをクリックするとそのディレクトリから下の階層へのアクセス状況が見られるようになります。
さらに、特定のファイルをクリックするとそのファイルへのアクセスを詳細に解析した個別表示のウィンドウが開きます。
で、それらがまだできていないわけです。

フィルター

ナマライザのフィルタ機能を作ってました。
フィルタ機能というのは、前の簡易アクセス解析で言う詳細検索機能であり、フィルタ条件を決定した時点で最適なフィルタを生成するので、無駄な条件分岐が発生して激しく遅いということがありません。
よって、簡易アクセス解析にあった単体での検索機能は廃止し、フィルタに統合します。
フィルタをかけるとフィルタ条件全てにマッチするログが選び出され、自動的に開いている全てのウィンドウを更新して解析結果を最新に保ちます。
もっとも、このウィンドウ自動更新機能は遅い場合は廃止する可能性がありますが。
ただ、この機能を実現するに当たって少し問題がありまして。
それは、フィルタの設定をするダイアログの構成です。
フィルタのリストにどんどんフィルタを追加してゆくという形なのですが、フィルタの種類によって使うパーツが異なったり、そのパーツの見せ方をやりたいようにやろうとすると難しくはないけど面倒なプログラムを組まないといけなかったり、だからといって作りやすいように作れば使い勝手が悪かったりして、どうにもうまくやるのに時間がかかりそうなのです。
まあ、適当に、頑張ってみます。

地球防衛軍

FNチェンジャーに不具合が見つかったので修正してアップしておきました。
リネーム条件に当てはまらない場合リネーム前とリネーム後の名前が同じになりエラーとなっていましたのでそれを直しました。
一応アップしておきましたが、詰め合わせのほうは更新してません。
ごめんなさい。

弟がSIMPLE2000のTHE地球防衛軍を買ってきました。
2じゃないほうです。
これを見るといかに2が簡単に作られたものかというのがよくわかりますね。
音楽使いまわし、画面使いまわし、システム使いまわし、敵使いまわし、主人公使いまわし、ステージ使いまわし、ミッション使いまわし、2は新作というよりは新バージョンといった感じだったんですね。

どうでもいい話ですが、秀丸のバージョンが6になって機能拡張されたのに伴ってPHPの書き方も変更しました。
以前は、

// コメント
function 関数() {
関数の中身
}
だったのですが、

function 関数() // コメント
{
関数の中身
}
にしました。

ダブルに愛二つ

今日は家電量販店に来年発売されるWindows Vistaを触りに行きました。そういうことにしておいてください。
Vistaは、XPにも増して余計な演出が増えたなという印象です。
サムネールとか3Dでウィンドウ切り替えとかは良い感じでしたが、タイトルバーが透けて後ろのウィンドウが見えるというのはぼやけてて後ろに何があるのかがわからず正直言って役に立ちませんでした。
ガジェットは出したり入れたりするときにすっと入れられるので便利です。
で、ソリティアを勝つまで十数回粘って、店を後にしました。

スーパーマリオ64のコイン取らないプレイは今日完了しました。
難しいと思っていたチックタックロックとレインボークルーズが意外に簡単だったので助かりました。
どこからどう行けばどこに届いてどこに届かないのか、とか、どのアイテムがどこにあるのかなど、かなり考える部分がありましたね。
取れそうで実は取れないアイテムにこだわったり、ノーダメージで突っ切ろうなどと考えているとなかなか進みません。
そんなわけで、取ったのはクリアに必要な最低限の70個ですが、もう1つ取れそうなので全部で71個になりそうです。

スクリプト講座を一気に2回分更新しました。
のんびりしてて時間が遅くなっちゃってごめんなさい。

マウンテンスライダー

マリオ64のたかいたかいマウンテンのスライダー難しいです。
コイン取らないで行こうとすると。
ショートカットを使ってコインを取らずにクリアはできたんですが、一応ショートカットなしでもいけそうな手応えはありました。

スクリプトのほうはなかなか良い感じに書けています。
明日更新ですよ。
ただ、次の更新分がかなり難しそうな気がするのですが…。

来月2日

明日にでもスクリプト作成のページ更新できそうなんですが、そこはあえて12月2日に更新することにします。
今日はパーサのことをあまり考えていないスキャナの実装を改善する話を書いています。
12月中にはせめて動くところまでは作り上げてしまいたいのですが……。

マリオ64コインなしプレイのクリア可否の書き方を難易度表記に変更しました。
必須コースに限って難しいです。

高い高いマウンテン

うむ、たかいたかいマウンテンはきつい場所が連続しているので難しいですね。
しかしたかいたかいマウンテンを飛ばすとなるとスターが集まらなくてますます大変なわけで。
あるいは取れないといっていたメタル帽子に再び挑戦するか。

<前 次>