2003年5月の日記

<2003年06月 2003年04月>

今日は暑かった

「NeoMupl」の設定のロード・セーブを実装しました。
レジストリによる記録とINIファイルによる記録の好きなほうで設定の保存ができます。
レジストリに記録すればINIファイルが、INIファイルで保存すればレジストリが削除されます。
それと、設定入出力クラスが、ファイルにデータがないときにエラーを起こすバグを修正しました。

「エボリューション」っていう映画を観たんですが、あれはある意味で凄いですね。
地球外生命体がどんどん進化していって巨大化するというストーリーなのですが、実はこの映画、シャンプーのCMだったのです!
ええ、2時間かけてシャンプーのCM!地球外生命体を持ち出してのCM!軍隊まで動員させてシャンプーのCM!!!
観る前から変な映画だろうとは予想していたものの、これは凄すぎます!

今日は曇っていた

やっとJavaアプレットについて書いてある本を見つけました。
ふむふむ・・・Appletクラスを継承して作るのか・・・
ハイ終わり!
立ち読み約6秒で本が要らなくなった美文でした。

なんかサーブレッドって変換位置変だな~と思っていたら「サーブレット」でした。
変換位置は同じですけど。

今日は学校でトランプマジックについての講義がありました。
つまり、どのようにしてタネを仕込むかということをやったわけです。

今日は風が強かった

熱統計力学の授業の、二回前のときにウトウトしていて聞いていなかったところを自分で勉強しました。
そして今日やったのは・・・密室殺人事件のトリック!
いや、ちゃんとした熱統計力学の内容でしたよ。

学校でJavaアプレットに関する本を探していたのですが、Javaサーブレッドとかばっかりで見つかりませんでした。
Javaアプレットによるゲームは諦めるか・・・?

「ゼルダの伝説-時のオカリナ」のサントラCDを借りてきました。
入会したからには使わないと!
その中にあった、リンクとシークが中ボス軍団に囲まれているイラスト、一度あの状況になってみたいものです。
「風のタクト」では似た状況がありました。
タートナック&モリブリン軍団との戦いです。
あれはきつかった、少しだけ。
それでも回復なしだったからどちらかというと余裕があったんでしょうが。

謎のフォルダ

ずっと前にいらない「Microsoft FrontPage」をアンインストールしたんですが、何故かフォルダが使われていると言われ、入っていたフォルダだけが削除できない状態でした。
アンインストールしたからにはそのフォルダには用はないんですよ。
絶対にプログラムから使用されることがなくなったフォルダですよ。
それなのに「他の人またはプログラムによって使用されています」といつも出ていたのです。
それで思い当たるプログラムを閉じても削除できず、さらには実行されているプロセスを手当たり次第に終了するという暴挙に出てもしぶとく残り、その努力は徒労に終わりました。
そして今日、最後の手段として、セーフモードでWindowsを起動し、削除する方法を試みました。
これによって、やっとのことでいらないフォルダを削除することができました。

CDを返してきました。
ケースが壊れていたんですが、特に何も言われませんでした。

「NeoMupl」の情報バーの表示・非表示を切り替えられるようにしました。
あと右端のスクロールバーの処理の実装も。

NeoMuplだってば!

急がば回れ善は急げ、ということで、「りすぷ」の名前を変えました。
今日からは「NeoMupl」です。
これだと他の名前とも引っかかりません(確認済み)。
名前が変わっていないのはスクリーンショットだけ!
撮りなおすのが面倒だったからです。
ツールバーのOn/Offの切り替えもできるようになったと思います(未確認)。

学校でなんかありました。
でも忘れました。

真の隠しページ・・・・?

「ゼルダの伝説-風のタクト」のサントラがあると聞いたので、ツタヤに言ってみてきました。
ところが、ところがそのサントラは探しても探しても見つからず・・・まあ「時のオカリナ」のはありましたが。
見てみると、他にも結構いろんなサントラがありました。
ドラゴンクエスト、まあこれは名曲ぞろいだし。
ファイナルファンタジー、これも大人気RPGだからあっておかしくないし。
ときめきメモリアル、スーパーロボット対戦α、マザー2、ピクミ・・・ん?
なんでこんなところに!?
何故今更!?
マザー2のサントラが!!?
そんなわけですぐさま購入!
・・・といきたいところでしたが、いつもの悪い癖で、意味もなくしばらくウロウロしていました。
しかもレンタルだったので買えませんし。
それで借りて帰ったら、何故か強い衝撃は与えていないはずなのに、ケースが割れていました。
返しに行くとき謝ろうと思います。
CDは無傷だったので弁償するのも小額で済むはずです。

みゅ~ぷる

「りすぷ」でINIファイルもどき操作クラスを追加しました(前に別の用で作ってあったもの)。
音楽再生データを管理する構造体を作りました。
リストに項目を追加して再生データを更新する関数を作りました。
リストの大きさをウィンドウに合わせて変えるようにしました。

「りすぷ」という名前、今後どうしようかと考えています。
元々「ListPlayer」の略だったのですが、「LISP」というプログラミング言語が存在しているようなので、それと被らない名前にしたいのです。
今のところ、「MusicPlayers」の機能拡張版なので「NewMusicPlayer」の意味で「NeoMupl」でも、と考えています。

きょうふのきかく(今日麩の企画)

集中して作るのを、「りすぷ」に決定しました。
詳しいことはダウンロードページに書いてありますので。
もっと詳しいことはダウンロードファイルに書いてありますので。
そして今回はまだできていなくてもどんどん更新していくというとんでもない企画を考えました。
ちょっとでもプログラムが進めば使えようと使えまいとどんどん公開していきます。
勿論、この更新は更新履歴には書きませんし、バージョンも上がりません。
意味のある更新になったときだけバージョンを増やします。
現在リストにファイルを追加することのみできます。

海外にて(ただしネット上)

ちょっと海外のゲームサイトを見てきました。
いくつか思っていたのと英語の綴りの違うキャラクターがいてあせりました。
"http://www.yoshisstory.com/"は見もの。
"GO TO GAMESITE"をクリックすると同じ場所が別ウィンドウで開きます。
あとはカービィのページで"Kirby's Dream Course"と"Kirby's Dreamland 3"を間違えているところなんか。
NOAはところどころ変な間違いをしていて面白いです。

「ふにゃgba」のスクロールの部分の構想がいくらか出来上がってきました。
(スクロール位置)=(キャラクターの位置)-(画面の大きさ)/2+(速度)*(定数)
視点ボタン(BかSelectにするつもり)押してるときは
(スクロール位置)=(キャラクターの位置)-(画面の大きさ)/2+(ボタン)*(定数)

学校で宿題として英語で物語を考えてこいとのことでしたが、とんでもなくくだらないストーリーでその場をしのぎました。

音源の違い

「ふにゃふにゃ」をXPでプレイしてみました。
そしたら開始早々エラーが!
"f2Set.exe"経由で起動するとうまくいきました。
BGM、パーカッションがチトうるさいです。
ボリューム半分ぐらいにするかもしれません。

最近いろいろ手を出しすぎてすべて中途半端な状態です。
ここらでいっちょ、「ふにゃふにゃ」の時みたいにひとつのプログラムに集中してみるか。

学校で腹痛

「質問・答 掲示板」の注意事項を追加しました。
まだ何か加えようと思っていたんですが、忘れたので思い出し次第付け加えていこうと思います。

「大乱闘スマッシュブラザーズDX」のイベント戦51課題全部クリアしました。
「兄さんだけずるいや」は、Dr.マリオの自滅を誘ってクリア、「宇宙からの訪問者」は、C.ファルコンの攻撃をうまくよけてできました。
「最終決戦」では、マスターハンドの方をとっとと倒して、クレイジーハンドの方は確実に攻撃できるようになるまでひたすら待ちました。
そしてついに、「ホントの最終決戦」、ギガクッパとガノンドロフとミュウツーが出てきます。
ある作戦により比較的簡単に勝つことができました。
その名も「風船睡眠作戦」、プリン(風船ポケモン)の「眠る」という技(睡眠)で攻撃する作戦です。
以下説明。
プリンの「眠る」は、普段はただ寝てしまうくだらない技ですが、眠りに入る一瞬だけ強い攻撃判定が体の内部にできるのです。
したがって相手にめり込むぐらいの接近状態で使わないと意味がないのですが、幸いにもギガクッパはばかでかいので、めり込むどころか体内に入り込むことさえできるのです(口から胃に入って…ということではありません)。
体内に入ったら何はともあれ眠る!
そしたら普段は殴っても蹴ってもビームぶっ放しても爆弾投げてもなかなか吹っ飛ばないギガクッパが、気持ちいいぐらい度派手にぶっ飛んでくれます。
強い攻撃力を持つリンクやサムス(もしくは普通のクッパ)でさえ苦労して苦労して倒す敵なのに、弱いはずのプリンちゃんがたったの2発であっさり倒してくれちゃうのです。
運がよければ1発で、最悪でも3発で撃墜することができますし、ほかの二人が寄ってきたらそっちも一緒に飛ばしてしまいます。
そうやってギガクッパがいなくなったら、あとはもっと強いガノンドロフ&ミュウツーとの戦いになります。
離れていると歩いてよってくるので逃げながら攻撃を加えます。
近づきすぎるとすぐボコボコにされて吹っ飛ばされるのでひたすら遠距離戦です。
遠くに離れていれば、コイツらは馬鹿なのですぐにボム兵(歩く爆弾)を蹴っ飛ばしたりモーションセンサー爆弾(地雷)を踏んづけたりするので、「眠る」以外に大した技のないプリンでも簡単に倒せます。
以上説明。

学校で停電

書きたいことは注意事項の一番最後に書いてあるのでそちらをご覧ください。

後、近況報告。
今日、学校が一時的に停電しました。
学生の一部が「もう授業ができないから帰ったほうがいいんじゃないか」と言っていましたが、外の光を取り込んで、問題なく授業再開。
そしてその直後、電力が回復しました。

実にどうでもいいところを更新しました

今日は「DataBox」にデータを入れていました。
その中でも今日入れたものではない項目。

名前:
アサシネーター2
英語名:
Assassinator 2
登場作品:
Bomber丸World
説明:
最強と名高い戦闘用ロボット"アサシネーター"最新機種のテスト版。
まだ正式な完成版ではないが、機能は既に充分実用に堪え得るものとなっている。

アサシネーター2に追加された機能は自己再生・構築機能で、一部が損傷しても、残りの部品や他のありあわせの材料からその部分を修復することができ、さらに自らを改造してより強くすることもできる。
ゲーム中では充分なパワーアップをしてから主人公たちの前に現れるので強くなることはないのだが、ある条件を満たすことで更に絶望的なまでにパワーアップしてしまうことがある。

仲間の裏切りを感知したアサシネーター2は、自らを作り変え、裏切り者の破壊に向かうのであった。

序盤戦のうちは普通に標準装備の武器で戦っているが、不利な戦局になってくると、周りにあるものを武器に使ったり建物を壊したりと、敵を倒すためにはなりふり構わずになってくる。

身長2.68m。

行動:
 烈火(全員に大ダメージ)
 融鉄(条件付で発動。全員に特大ダメージ)
 光線(一人に特大ダメージ)
 打撃(一人に大ダメージ)
 地震(全員にダメージ。上から何か落ちてくることも…)
 床板(単なる打撃)
 支柱(単なる打撃)
 吸気(次のターン必ず烈火を発動。攻撃力が上がる)
 声色(ランダムで誰かがひるむ)
 粗茶(質問に「いいえ」と答えないと死亡)
 降参(条件付で発動。同上)

「裏切リ者、許サナイ。僕ダヨ覚エテナイ?逝ッテヨシ。オ茶ドーゾ。」

真実の目玉からのコメント:
「空気吸引ノ後ノ烈火ハ灼熱ヲ極メマス。
無防備ニ攻撃ヲ受ケレバ即死ハ免レマセン。」


勿論、アサシネーター1も存在します。
ザコとして出てきますが、ボス級の強さです。
2ともなると反則級の強さです(1ターンでゲームオーバーの恐れあり)。

広大なマップも表示できますです

「devkitAdvance IDE」で、ウィンドウのリサイズの際うまくツリービューが動かなかったのを修正しました。
まだ機能はありませんが、オプションウィンドウをを枠組みだけ作りました。
エミュレータのファイル名を指定できたり、インクルードパスの設定などができたりします。

「ふにゃgba」のマップ管理クラスの表示部分が一応できました。
昨日書いた部分にたった2行の命令を書き加えただけですが、それだけでも5時間ほど考え込みました(その半分以上がゲームをやりながらだったことは内緒です)。
マップのシフト移動の機能を追加して、テストが済めばマップ管理クラスは完成です。

夏までには作り上げてしまいたい

「ふにゃgba」のマップ管理クラスが、もう一息で表示できるところまでいけそうです。
それとは関係なしに、タイトルの背景部分を表示できるようにしました。
思ったより単調になってしまってちょっと不満です。
その単調さは、スクリーンショットを見ていただければ分かると思います。

IDEの方も少し改良しました。
終了時のウィンドウの状態を保存しておき、次回起動時にその状態を再現します。
作業内容ではなく、ウィンドウの状態を、です。

ゲーム自体(「バナナあつめ」のほう)は、画面が狭いので、うまくスクロールを使っていけたら、と思います。
しゃがんでいる間は下が見えたり、上ボタンで上のほうが見られたり、キャラクターの向きによって見える範囲を変えたり・・・
LRボタンはヒントボタンとして使うつもりです。
そしてゲーム自体は十字キーとAボタンだけでできるようにします。
Bボタンはセーブに使おうと思っています。
それと、パレットの変更で気軽に色を変えられるので、それも使ってみようと思います。

カウンター!

「ふにゃgba」のマップ管理クラスを作りました。
例によってまだできていません。
大きなサイズのマップを扱うことができ、タイル1個の大きさを設定できたりもします。
マップデータのシフト移動(全部まとめて位置をずらすこと)もできるようにしたいと思っています。
本当ならこのクラスを今日中に作ってしまって、スクリーンショットを上げてみようと思ったんですが、できませんでした。

シールドブレイカー!

そろそろ更新しないといけないようだったので、「ByValとByRef」を更新しました。
各関数の速度の実測値があるので参考にしていただければ、と思います。
構造体とかクラスはByValでは渡せません。
ちなみに、String型がByValで遅くなる原因は、私は、文字列をいったんコピーしてからそれを参照渡ししているからだと思っています。

「ふにゃgba」のタイトルの模様の元を一通りそろえました。
その画像の下には、通常のステージ用のタイルデータを入れるつもりです。
ちょっとしたこだわりなんですが、「ふにゃgba」の色には、無彩色を除き、灰色を混ぜないようにしています。

ドルフィンスラッシュ!

ある掲示板が荒らされていたので自体が沈静化するように努力してみました。
不謹慎ですが、掲示板は時として「荒らし」という共通の困難が現れることでみんな張り切って書き込むようになるみたいです。
そうそう、ここを荒らそうとしたってすぐ削除されるだけなので意味ないですよ。
まあ、数が少なければちょっと変な書き込みとしてレスさせていただきますが。

「ふにゃgba」のマップチップを少し描きました。
今回はタイトル画面に現れる不思議な模様の元を描きました。

情報リテラシーだったからじゃないぞ

「ふにゃgba」のタイトル画像を作ってみました。
「ふにゃ」の文字だけですが。

朝、行きの電車の中で気分が悪くなって、学校を休んでしまおうかと思ったのですが、いってみれば何とかなると思って無理をしていって見ました。
そしたら今度はバスの中で急激な眠気に襲われてついウトウト…
授業を1時間受けていたら直りました。

自己紹介をちょっと更新しました

IDEを改良しました。
レジストリに記録されるウィンドウのサイズを通常のウィンドウのときのサイズにしました。

「ふにゃgba」のキー入力クラスができました。
ただ、その辺の処理が普通のWindowsプログラミングの感覚に反する仕様になっているため、もっと考えて作れよ任天堂って思ったりもしたのですが、うまくクラスでその辺の違いを隠蔽することができました。

BW開発どうなった!?

昨日言っていた仕事のソフトの外見がある程度できました。
本当はもっと進めることもできたのですが、ゲームをしながらだったのでこんなもんです。

とっとと書き終えたいので、またしても「DataBox」からデータを掲載しておきます。

名前:
真実の目玉
英語名:
Truth Eye
登場作品:
Bomber丸World
内容:
目玉のおやじではない。

アイテムとして使うと、敵の弱点などいろいろ教えてくれるが、何しろ生き物なので、体調が優れないときや、気分が乗らないときなどはまともに教えてくれないこともある。
たまには敵と関連性の薄いヒントをくれることもある。

物語の最初に立ち寄った店で買うことができる。

おそらくセリフの多さナンバー1。

我叫・・・

先生が日本語の名前をうまく読めなかったと言う理由で、全員に中国語名が与えられました。
私は、"ジョンダオチェンシェン"になりました。
そんなときその中国語名を使って出席を取っていて、先生が気になる一言。
先生「B君(プライバシー保護のため本名は伏せます)は何人(なにじん)?」
はて、偶然にも中学校の、変わった名前の友達と同じ名前だなぁ。
B君「在日です」
そういえば父は名前を見てあいつのことを在日じゃないかって言ってたっけな。
バスの中でB君似の人を見かけたけどきっと人違いだったんだろうな。
そう思いながら、名簿を見ると、正真正銘、中学生の頃の私の数少ない友達であったB君ではないですか。

地理の教科書を受け取って、大学で使う教科書はひとまず揃いました。

学校でWebデザインに関する本を少し立ち読みしました。
私はデザインにこだわらないシンプルなページを作っていたので関係ないと思っていたのですが、シンプルなデザインにはシンプルなデザインで役に立つことがあったので、参考になりました。
結局それを買わなかったのはお金がなかったからです。

帰宅途中、電車で降りる駅を間違え、父と同じ電車に乗って帰ることになってしまいました。
まあ、別にいいんですが。

「devkitAdvance IDE」の「全て保存」メニューを作りました。
「ふにゃgba」の開発もそろそろ本格的に始められそうです。
手始めにキー入力クラスを作り始めました(キー入力はそのままでは使いづらい)。

父に頼まれて、仕事用のソフトを作ることになりました。

あっさり書いてるけど意外と大変なのよ

「devkitAdvance IDE」で、プロジェクトをオープンするときの処理を少し変更しました。
Cソース、C++ソース、Cヘッダ、C++ヘッダをプロジェクトに追加できるようにしました。
あと、プロジェクトの保存ができるようになりました。
これでIDEとして機能するようになりました。
っつったってファイルをツリー表示してテキスト形式で編集するしかできないのでIDEと呼べるのかが微妙なところですが。

DKAですが

「devkitAdvance IDE」の新規作成の「単純なCプロジェクト」と「単純なC++プロジェクト」を完全に実装しました。
そのまんまでもとりあえず動く"main.c","main.cpp"、そのまんまでもとりあえずビルドできる"makefile"、そのまんまでもとりあえず実行できる"make1.bat"が生成(というよりコピー)されます。
あと、ビルド時の処理を少し変えました。
今までは出力ファイル全てがプロジェクトのあるフォルダにできますが、今度からは、ROMのみがプロジェクトのあるフォルダにでき、その他のファイルはプロジェクト専用のフォルダにできます。
こんな感じです。
GB
┣funyagba.dap
┣funyagba
┃┣main.cpp
┃┣makefile
┃┣make1.bat
┃┣main.o
┃┣funyagba.map
┃┗funyagba.elf
┗funyagba.gba

#Developですが

「SharpDevelop」をインストールしました。
「Visual Studio .NET」風の.NET用IDEです。
詳しくは、"http://sharpdevelop-jp.sourceforge.jp/"を御覧ください。

「devkitAdvance IDE」の新規作成の「単純なCプロジェクト」と「単純なC++プロジェクト」を一部実装しました。
プロジェクトファイルの生成、フォルダの作成ができていて、ソースファイル、makefile、make1.batができていません("make1.bat"の名の由来はよく分からない)。

火曜日と金曜日は時間がないのでできるのはこんくらいのものです。

ふにゃgbaですが

「devkitAdvance IDE」で、ビルドと実行ができるようになりました。
で、サンプルなどからファイルを取ってきて、掲示板の書き込みを参考にして色々makefileの設定をして、ようやくgbaファイルを作ることができました。
白い画面が出るだけです。
一応ここまでできるようになったので、IDEの開発も進めつつ「ふにゃgba」も作っていこうと思っています。
「バナナあつめ」と「ふわふわふにゃ」の2本立てになる予定です。
「バナナあつめ」は「ふにゃ」とほぼ同じルール。
ただし面クリア型ではなく広大な一つのマップ中にあるバナナを全部取り尽くすことが目的です。
「ふわふわふにゃ」もオリジナル版とほぼ同じです。
オリジナル版とは違って、画面の左右端が繋がっておらず、無限に広いステージがスクロールしていきます。
プログラム上、オリジナル版には組み込めなかったシステムです。

DL不可能?

「DataBox」をXPで使うとスタートメニューが使えなくなるようでしたので少々強引な方法を使いましたが使えるようにしました。
ついでに、最近やったゲームのデータをいくつか入れてみました。
まあ、sellfishフォルダにあるdat・・・おっと失礼、こっちの話です。

代わりに(何の代わりだと突っ込まないように)、「DataBox」からひとつデータを引っ張り出してきます。

名前:
謎の男
登場作品:
Bomber丸World
説明:
全てが謎に包まれた人物。

攻撃力はこれ以上ないくらい弱く、攻撃は専ら他人に頼る。
ステータスは全体的に弱く、特殊攻撃に対する耐性も弱い。
魔法攻撃がやや強く、補助系の技には、ヒューマンシールドやシックなど、とにかくいやらしい技が多い。
回復技も持っているが、リスクの高い技でもある。
また、ストレスがたまると落ち込むタイプ。
連続誘拐事件の真相を追っており、貴重な情報をくれる。
キャティアによれば、変わった下着をはいているらしい。
ギャモンには正体を見破られているらしいがストーリー的な意味はない。
自動回復量は少ない(1%程度)。
身長は150cm。
イメージカラーは赤。

謎である割には情報公開されているというのは多分気のせいである。

「オレのキモチなんてダレにもわかってたまるか!!」
「あのコ、ちょっとオカしくないか?」


くどいようですが、これでキャラクターの設定を管理しているのです。
ちなみに、ヒューマンシールドは仲間の後ろに隠れて自分だけダメージを防ぐ技、シックは名前の通り相手を病気にする技です。

「devkitAdvance IDE」でファイルの保存を作りました。
それに合わせてそれぞれのフォームでのファイルの管理方法を変更しました。

「ピクミン」は命の大切さが分かるゲームだといわれています。
私はそうは思いません。
原住民を何百人も奴隷のようにこき使って、何十匹単位で死んでいってもそれは数だけの問題で、挙句の果てには目的を達成したらとっとと自分だけ帰っていってしまうのです(まだ帰ってませんけど)。
他にも色々命の大切さを扱った作品がありますが、命の大切さを伝えるために、わざわざ命を落とさせるだなんて、あまりにも悲しすぎます。

ゴシップストーン?

「Bomber丸World」でするつもりのことを、一部公開してみました。
不確かな情報なので、完成までにある程度変わると思いますが、中には絶対にはずしたくない仕様もあります。
それを探すのもいいかも。
とりあえずその前にどこにそのページがあるのか探すのが先決ですね。

「ふにゃふにゃ」の追加ステージどうなったんだろう・・・
「リダクター」どうなったんだろう・・・
「ByteEdit」どうなったんだろう・・・
「りすぷ」どうなったんだろう・・・
「TRPG+」どうなったんだろう・・・
・・・・

エラーメッセージの大切さが分かるとき

IDEかなり進みました。
もう使っているところを見るとすぐにでも使えるのではないかと思えるほどになっています。
実際に使ってみるとまだまださっぱりだったりするのですが。
それなりに何かやっていそうに見える画像をアップしておきました。
これで思う存分騙されてください。
なんかツールボタンが謎ですね。
プロジェクトのオープンのときに連続して4~5種類ぐらいのエラーがあったのですが、全然エラーメッセージが出ず、いちいちStopをかけてステップインでエラーの箇所を探す羽目になりました。

<2003年06月 2003年04月>