2004年9月の日記

<2004年10月 2004年08月>

漢字など

アンケート管理フォームを作っていましたが、アンケートの記録方式を勘違いしていた部分があったため、一旦それをやめて、削除機能のほうを先に作ってしまいました。
追加フォーム・削除フォーム・修正フォームとを相互に行き来できるようにはしています。
修正フォームを作れば完成といえるようになるかも。
終了アンケートのHTML化は、ディレクトリ構造の関係上、しないことにしました。

明日から学校の授業が再開されます。
東洋文化論は名前だけ聞いてこりゃもう単位は取れないかなと思っていたのですが、具体的に講義内容を見てみると、漢字から見た中国の歴史ということで、結構個人的には興味のある内容で、成績の付け方でも、とりあえず授業には出席してテストでそこそこの点数を取れれば単位は貰えそうかなということで、頑張れば良い成績もいけそうな気がするし、何はともあれ受けてみようと思います。
逆に理系科目はどんどん難しくなっていって、一部では取り残され気味の感も…

おやすみなさい

新ゲームのページ、テクニックのページも含め、完成しました。
後はアップロードするだけです。

そろそろ新学期が始まるので教科書やらを整理していました。
量子力学ですよ量子力学!
では寝ます。

わざと落ちるという選択

新ゲームは、アーカイブ作ってテクニックのページも作ってみました。
大量得点するコツや、逆転される前にとっとと勝負を決めてしまう方法などなど…
ちょうどいい画面写真があまり撮れないので無駄に時間を食ってしまった感があります。
詳細はいずれまた。

JPEG

ダウンロードページを作っていました。
で、アンケートの結果を踏まえ、縮小画像に原寸大の画像をリンクしようと思ったのですが、実際に画像を作ってみたところ、原寸大の画像よりも、半分サイズの画像のほうがファイルサイズがでかくなるという問題が。
だから、画質を下げて何とか原寸大よりファイルサイズを小さくしてみたら、何がなんだかわからないくらいに劣化してしまいました。
というわけで、現在は原寸大の画像をタグで縮小表示しています。

アンケート管理中

新ゲームのマニュアルは完成しました。

で、今日は方向性を変えて、アンケートCGIの既存アンケート管理を作り出しました。
とりあえず総合管理画面を。
消したり隠したり終わらせたりできます。
の予定です。

世知辛い世の中…

スリザーリンク85問を一通りやってみました。
6割くらいは解けたけどいくつかは輪っかが二つになったり線が繋がらなくなってしまったりしてギブアップ。
さすがに慣れたため最大のものはそこそこの正解率を出せました。

新しいゲームのマニュアルを書いていました。
そんでもって、昨日言っていた、ハイリスクハイリターンの機能をつけました。
これでほぼ完成。
背景画像を差し替えてマニュアルと紹介ページを作ったら終わりのはず。
既に2つほどバグが判明してるけど面倒なんで直しません。

もう爆発なんてしません

TscripBBSの個別の記事表示を作りました。
本当は個別の記事表示ページには下部に返信フォームとナビゲーション用リンクが作られますが、そこまではまだ作っていません。
それと、一覧表示Allの、次の5件・前の5件のリンクを作る処理も作りました。
今のところ記事が少ないのでリンクは出ていませんが、記事が増えると一番下のナビゲーションリンクの前後にリンクが作られます。

元「SuperBomber丸」だったゲームの改造がほぼ完了しました。
いつまで経っても爆発しない爆弾は人畜無害なスコアボールに(変数名は面倒なのでBombのままに)、制御不能勝負の行方は運任せになるとげとげはプレイヤーの操作で突然動きを変えたりする戦略的なアイテムに、丸に目と口だけだった主人公は丸に目と口と眉毛にと、いろいろ変更を加えました。
うまい人同士が対戦するといつまでも勝負が付かないというのが対戦ゲームでは問題となりがちなのですが、これも、点数が増えるに従って少しずつ少しずつ足場が少なくなっていって最後には全部なくなってしまうので、必ず決着は付きます。
点数制なので、いろんな行動が得点・減点に繋がります。
例えば、落ちれば大減点を食らうため落ちないようにジャンプしつつ足場を移動しなければならないのですが、ジャンプしまくっていれば何も考えなくてもそれなりに長持ちするので、ジャンプすればするほど減点。
スコアボールは出している時間が長いほど得点が貯まるけど、だったらスコアボールを出しまくればいいということになってしまうので、それを出す動作に減点。
もちろんとげとげにぶつかっても減点。
得点を増やす方法はスコアボールを出して、画面内にできるだけ長い間とどめて置くしかありません。他は減点のみです。
あと足りない機能は、大量得点を手に入れるリスクの高い方法といったところです。
そうそう、数値をいろいろカスタマイズするとまた面白いので、今回はソースを圧縮せずにそのまま公開して、各自で自由に数値を変えられるようにしておこうと思っています。

DirectMusic更新しました。
MIDIは何度も何度も何度も何度も繰り返し聞くことになるので、ループ部分はわかりやすく、かつ短くしてあります。
画像の大きさがちょっと微妙なところです。
640x480のサイズだと大きさそのものは問題ないんだけどスタイルシートのせいで左に大きく隙間が開くのでその分だけ右にずれて画像が少しはみ出てしまうのです。
まあ大事な部分は画面に入りきるから別にいいんですけど。
暇があったら音符の間をもっと詰めて、小さい画面でも収まりきるように調整してみます。

「ふにゃふにゃ」のダメージエリアを汎用エリアに移行しました。
変数名変える→コンパイル→エラー箇所確認→コンパイル→エラー箇所確認・・・
・・・見る人が見たら怒り出しそうなやり方ですね。
ともかく、汎用ということで、何にでも使える変数を用意してみたりしています。
「ふにゃさん」で初めて正式な対応にする予定だった風の処理もこれの応用で作れそうな気がしてきました!

DirectMusic、半分ほど書けました。
明日更新しますよ。

ナウシカ読み終わりました

真面目にDirectX音楽編02.を書いていました。
「ゲーム音楽について」と重複する部分がありますが、プログラミングよりで書くことがありますので、それで差別化を図っておきます。
例えば、SetRepeatsに関しては2つほど気をつけることがありますし、SetLoopPointsについてもうまくループしてくれなくなることもあります。
詳しくは明後日。

ナウシカ5~6読んでました

DirectMusicのループさせるサンプルを作っていました。
プログラムソース自体は2行追加するだけという馬鹿みたいに単純なのですが、少しややこしいところがあったり意外な挙動を示すことがあったりして、ただループするだけでも結構書くことができそうです。
でも意外に面倒なのが鳴らすMIDIと説明のための画像。
何しろどっちも芸術性(元々ないけどさ)とかよりもDirectMusicがどのように動くかがわかりやすいようにしなければならないので、使い回しができません。
とか何とか言いつつすでにどちらもほぼ出来上がってたりするんですが。

ナウシカ1~4読んでました

「SuperBomber丸」の改造計画は着々と進めています。今度こそ本当です。
とりあえず今回は、可読性完全無視のコードを見やすくインデントして、ゲームタイトルを新しいのに変更して、画像の置き場所を変えました。
次の更新はDirectMusicです。関係ありませんけど。

スーパースコアボール

アクセスログ回収しました。
Belution.comからの訪問が増えていました。
まあいい感じ。

「SuperBomber丸」の改造計画は着々と進めてい・・・・く予定です。
とりあえず先に落っこちたほうが負けというルールは廃止して、点数制を導入し、どちらかが落下したときにゲーム終了とし、そのときの総合点数で勝敗を決めるようにしようかと思っています。
爆発しない爆弾は、画面内にあったらどんどん点数が加算されてゆき、落ちたら一気にドカンと点数を下げるという方法で、ゲームに絡ませてみようと思います。
んでもって、落っこちたほうには当然大減点を食らわして、残っていたほうが圧倒的に有利という状況にするのは当然です。

何かが落ちてくる

久しぶりに「SuperBomber丸」をやってみました。
爆発は面倒だから作らないとすると、同じ動作アルゴリズムで、絵を差し替えていろいろな場面で点数を増減させれば一応公開できるぐらいにはまともなゲームになるのではないかという気がしてきました。
9月中を目安に改造してみようと思います。

アイラが海の男に

今度の更新はDirectMusicの続きにしようと思います。
DirectDrawはまた後回し。
DirectMusicは結構単発ネタが多いのでどうやってまとめるかというところにかかってきそうです。

リンクハイラル城で暴れまわる

いやぁ、なんかタートナックを思いっきり壁に叩きつけて倒したり、モリブリンが2階から吹っ飛ばされて1階まで落ちたり、結構様になっていましたよ。
ゴードンの音楽の変化パターンはああなっていたのか…

ナンバーライン

17日までは更新しないといっていたのですが、スケジュールの都合がつきそうだったので今日更新しました。
本当はもっと昼間のうちに完成させてアップする予定だったのですが、スリザーリンク(http://www.pro.or.jp/~fuji/java/try/numline/index.html)の問題85が解けたと思ったら輪っかが2つできてしまって意地になってしまい更新が遅くなりました。
あんまり難しいことをやっているわけでもないのにバイナリエディタには検索機能が搭載されていないことって多いんですね。
バイト列の検索は検索用入力フォームを作るのが面倒だったので後回し。

Windowsアップデートをしました。
JPEGを表示したらパソコンがぶっ壊れるかもしれない不具合を直したとのこと。
画像ごときに破壊されるWindowsXpって一体…

クッキー変更フォームにスタイルシートを使ってみました

「Bomber丸World」のBGM作っていました。
「ふにゃふにゃ」のタイトル没曲のアレンジバージョンです。
もっと元気にということで楽器変えてみたんですが、メロディが同じじゃあんまり印象は変わらないかなぁ…
とりあえず作りかけのものをMIDIにしてアップしてみました。

「ByteEdit」の検索ダイアログを作っていました。
元々バイト列の検索と文字列の検索でそれぞれ別のダイアログを使う予定でしたが、ひとつのダイアログで両方使えるようにすることにしました。
とはいえ、今回は文字列の検索のみなのでバイト列の項目は全て利用不可になっています。
検索のアルゴリズムは既に考えてあるので、あとはそれをコード化するだけです。

キ番登録フォームにスタイルシートを使ってみました

「ふにゃ」の追加ステージ2ができたのでダウンロードページにて公開してみました。
特にこれといったテーマはなく、作りたいステージを作りたい順番で作りたいように作ったものです。
とは言ってもなるべく簡単なものから始まるようにはしていますが。
1面と2面はプレイヤーを舐めきったステージ。
3面と4面はジャンプのテクニックを使うステージ。
5面と6面は適当にいろいろ配置したステージ。
特に4面はジャンプのテクニックがかなり要求される割にはすっきりとしたステージで、ジャンプ以外のテクニックはできる限り必要のないステージに調整したつもりです。
正しい順路で進めばジャンプしない場所ではガンガン走り回れますが、間違った方向に進んだ場合はいばらの道が待っているので引き返します。
対して5面は、特にこれといって難しいテクニックは要求されない割にごちゃごちゃとしたステージで、やったらめったらちょい技が必要になってきます。
シークレットが有効になっていれば馬鹿馬鹿しいほど簡単なステージですが、正しい道順でいくと、まさに嫌がらせそのもののせまっくるしい通路が待ち受けています。
しかもさらに悪いことに、ごちゃごちゃしているからいたるところですり抜けバグが生じるため、ショートカットポイントや戻されるポイントが多数あって、その上ショートカットポイントはちょっと近道できる場所が数箇所あるだけなのに対し、戻される罠は大幅に戻されるものがいたるところに仕掛けられています。
6面は本当にただ適当にブロックを散らかしただけ。
でも一応それなりのものにはなっていて、最初に左に進むと戻り方が一通りしかなく遠回りになりますが、上→左→下と進めば比較的簡単にクリアできます。

DirectDraw、思っていたよりも少し厄介で、今日は更新できませんでした。
…とりあえず急ぎます。

DirectDraw

真面目にDirectX平面編01ウィンドウを書いています。
明日更新できなければ更新は17日以降になります。
いろいろと都合がありますもので。

それでも気になるならバグ報告まで

アンケートCGIの、アンケート終了処理を作ろうと思いましたが、先にスタイルシートへの対応をしてみました。
エラー画面だけ微妙に対応されていなかったり、NNで見ると文字がずれてたりしてちょっと気持ち悪いのですが、ここらへんはそれなりに見えればそれで良しということにしてあるのであんまり気にしないようにします。
ついでに、終了時に結果表示用HTMLファイルを生成するのはファイルの置き場から考えてあまりよくないと考えたので、CGIでの表示に変更しました。

Simpleにしんぷる

TscripBBSのSimpleができました。
設定から一覧表示スタイルでSimpleを選ぶと表示されます。
見ての通り、アホみたいに簡単なので、すぐにできてしまいました。
そして、上のとごっちゃになりそうですが、しんぷるもできました。
設定から投稿内容表示でしんぷるを選ぶと表示されます(ただし今は一覧表示スタイルがAllの場合のみ)。
見た目の指定にタグをあまり使わず、各部分の意味と包含関係を表すためにタグを多く使いました。
例えば、表組みではないのでtableを使わずdivを使ったりしています。
見た目の上では結構無駄なタグが多いんですけどね。

特殊エリア

f2s1+フォーマットの読み込みを作りました。
ダメージエリアの読み込みを追加したわけですが、今考えてみると、特定の領域に特別な効果を持たせるというアイディアにはもうひとつ、ワープエリアというのもありまして、さらに思いつきでもっと増える可能性を考えれば、ダメージエリアはダメージエリア、ワープエリアはワープエリアというふうに分けて作ると、そのたびにセーブデータが膨らんでいき、そのたびに似たようなコードが量産され、そのたびにエディタのウィンドウが増えるのです。
そうなっちゃったら仕様変更とかデバッグが結構大変になるので、これらを全部ひっくるめて特殊エリアという概念で統一しようと思っています。
ゲーム本体のほうでも幸か不幸かまだダメージエリアのデータを直接扱う部分はほとんど作っていないので、新しいデータ形式が決まればすぐにでも変更できると思います。
んで、昨日言っていた氷の息最大数のことですが、デバッグしてみて明らかにおかしい挙動があったので調べてみたら、設定でどんなにたくさん設定しても、ただメモリを浪費するだけで実際には最初の20個までしか使えないというバグがありましたので、修正しておきました。

f2s1+フォーマット

「ふにゃふにゃ」のダメージエリアを作っています。
今日はデータ形式を決めて、一応使える状態にまではしておきました。
読み込み処理はまだ作っていませんが、今から作ります。
エディタのほうでも対応しなければなりませんが、それなりに面倒臭そうな気がします。
新しい要素を追加するのでデータ形式も変えなければなりませんが、単純なf2s1フォーマットの拡張で事足りそうです。
これを同じf2s1フォーマットとして実装すると下位互換性が得られますが、旧バージョンでは挙動が変わる可能性があります。
あと、画像でメモリ何メガバイトも使ってるのにたかが数キロバイトをケチるのもどうかと思ったので、'氷の息'の最大数を100個にまで増やして、「攻撃が不発!」なんて事がなくなるようにしました。
100個という数字に特に根拠はありません。

たいふーん

朝、また地震がありました。
昼、台風が来て外に出られませんでした。
夕方、テレビがつかなくなりました。
夜、風は収まってきましたがテレビはまだつきません。

TscripBBS投稿処理作ろうと思って、そうしたらTscriptの個人情報処理を先に作らなきゃいけなくて、面倒臭いんでほっといてどうでもいい部分だけ作りました。
見た目も内容もほとんど変わりありません。

ザオリク

ByteEditニューバージョンです。
大分それらしくなってきました!
でもまだまだ!検索&置換機能も作りたいのです。必要なのです!
今度はこれを目標ということで、今までよりはウィンドウを増やさねばならない分難しそうですが、頑張ってみます。
つきの更新はDirectDrawか「ふにゃふにゃ」で。
あ、一応ゲーム紹介のドラクエ3のところ、開通しておきましたんで。

自然災害の多い年ですねぇ

TscripBBSが遂にそれらしくなってきました。
Allときゅーごの表示処理がそれなりにできたのです。
スタイルシートを使ったのでよりウィンドウらしく見せることができるようになりました。
今後は他のスタイルは一旦置いといて、投稿処理を作る予定です。
これができるようになったらテスト投稿もできるようにする予定です。

地震ですよ地震!
怖かったよぉ。
揺れてる間避難経路を考えてました。
マンションじゃ逃げにくい…

いろいろやってみる日

「RPG±0」のイベント編集で、機能拡張にあわせて編集画面を出す処理を変えなかったために編集できないようになっていたのを修正しました。
今後はマップ間移動の処理を作ろうかと思っています。

Q&Aのページを自己紹介のCGIと同じ方式にしました。
見た目はともかくこっちのほうが管理しやすいのでこちらにしました。

アクセスログを回収しました。
とりあえず先月は新たなリンクはなし、yahooがいまだにHPMに人を招き入れている、403エラーは想定しているもの以外は特にない模様。
ダウンロード数は微妙に減りましたが好調です。

日記過去ログの11月分とゲーム紹介のページを更新しました。
メトロイドやらFFCCやらマリオ64をやりつつCGIとかゲームとか作っています。

弟の友達が来てスマブラをやった模様。
どうでもいいけど。

明日か明後日あたりByteEditをアップします。

かんたんなことをやってみよう

「ByteEdit」のアンドゥ機能を実装しました。
アンドゥ機能そのものはただアンドゥバッファと編集中のデータを入れ替えるだけ。
詳しくは先日の日記で。

「カービィのエアライド」のシティトライアルのクリアチェッカーのデータを入れてみました。
今回はゼロヨンアタック編です。
最高速がものすごいハイドラならタイム一桁も可能なので、マシンが限定されていなければこれを使うと確実です。

「CharaBox」に重複チェック機能を追加しました。
NodeのNextは同じ階層で次のノードがないとNothingが入っています。
当然といえば当然だけど、念のため調べてみました。
これってヘルプには書かれていないんですね、全く。
そんなわけで、エリックとフレアが二人登録されていました(もちろん別人)。

むつかしいことをかんがえよう

WindowsXPのサービスパック2をインストールしました。
大幅にセキュリティアップされるってことだけど、裏を返せばこれまでが穴だらけだったということでしょうか。
それより、実際のところまだまだ穴だらけなんじゃないでしょうか。
どうでもいいけどインストール終了後「再起動しますか?」のメッセージが出たので「はい」にしたら再起動せずに、また同じメッセージが出てきて、今度こそ確実に「再起動する」にしても再起動せず、タスクバーの隅っこで「まだ再起動されていません」という実に歯痒いメッセージが。
3度目でやっと再起動に成功したと思いきや、「設定を保存しています」でフリーズ。
もしかしたらかえって悪くなったんじゃなかろうか。

「Bomber丸World」のシステムについて考えてみました。
例えば、関数は終了しなければならないのです。クラスは破棄されなければならないのです。

ゲーム起動→ゲームがタイトルを呼び出す→タイトルがマップ画面を呼び出す→マップがイベントを呼び出す→なんだかんだあってゲームオーバーになり再びタイトルが呼び出される・・・・
という構成にしていれば、結局のところ間接的にタイトルがタイトルを呼び出すことになり、長期的に見ればかなりまずいことになっているわけです。
かといって、
ゲーム起動→ゲームがタイトルを呼び出す→タイトルがマップ画面を呼び出すようゲームに通知する→ゲームがマップ画面を呼び出す・・・・
なんてことをすると全てをゲームの中枢部分が管理することになり、シーン同士の直接のつながりがなくなってしまいます。
この場合、
…タイトルがマップ画面を呼び出す→タイトルは不要なので消えてもらう→マップがイベントを呼び出す→イベントが終わったらマップに戻るのでマップは消さない→なんだかんだでタイトルへ→マップその他はもう用済みなので消えてもらう…
これを実現するためには、次のシーンの初期化が済んだら前のシーンを消すという処理が必要なわけですが、これは各シーンをクラスという形で用意して、次のシーンの初期化処理で前のシーンをdeleteするという方法で。
あるいは、
…タイトルを中断してマップ画面を呼び出す→マップがイベントを呼び出す→なんだかんだでゲームオーバーになったらタイトル意外は全部消す→タイトルがまた動き出す…
というのは…よくわからくなってきた…

「ふにゃふにゃ」の反射属性を持つラインのことも考えていたのですが、どう計算してみても複雑な式が出てきてしまい、とても実装する気にはなれません。

元に戻す

カウンターを改良しました。
見ての通り、登録フォームと説明をわかりやすくしただけです。

ドラクエ7のモンスター職について調べていました。

スライムドラゴスライムプラチナキング
リザードマン
ゲリュオンアンドレアルエビルエスターク
ダンビラムーチョ
サンダーラット
プロトキラーデスマシーン
爆弾岩ゴーレム
バーサーカー
腐った死体呪いのランプ魔人ブドゥ
ミミック
踊る宝石ヘルバトラー
エビルタートルフライングデビル
花カワセミ
キメラ

ベホマズンとパルプンテはぜひとも覚えておきたいので。
マダンテは既に習得済み。

「ByteEdit」のアンドゥ機能の構想を練っていました(本当は今日作ってしまうつもりだったのですが)。
まず、何か編集動作をしたときには、変数に何の操作をしたのかを記録する。
そして、その前に以前の値と比較して、以前と違う動作をしたときにはアンドゥバッファに編集前のデータを写す。
アンドゥ機能を利用するときは、現在のデータとアンドゥバッファをごっそり入れ替える。
これは、メモ帳と同じで、2回目以降はアンドゥする前の状態に戻ったりします。
最近は複数回アンドゥに対応するソフトが増えてきているようですが、私の作るソフトにそこまで期待しちゃいけません。

<2004年10月 2004年08月>