kr_ryo 徒然日誌 <2003年6月15日分>

三國志製作記24〜ダイアローグとプログラム〜

私の仕事は今月から来月にかけてだんだんピークになってきますので、お休みの日も会議の発表のイメトレとかしないといけません(T-T)さらにその上、家族が悪質?な訪問販売にひっかかりかけたのをサルベージしたりとか、梅酒のびんを流しの下の戸棚で割ったので、流しを取り外して掃除したりとか、衣更え&冬物グッズ片づけ&夏物グッズ取り出しをしたりとか、緊急の内容についてインターネットで調べ物をしたりとか、なんだか落ち着いてられない今週でした(^^;終わり。

というわけにはいきませんで(^^;とりあえずちょびっとだけ進んでみたことについてお話しようと思います。

先週までで英雄の選択のところまではいきました。さていよいよコマンドです…って、どうやって移るのよ?これまでもオブジェクト指向について色々書いてきましたが、流れのままに処理を書くプログラムとオブジェクト指向とは違う、よう、です(^^;Aこの、オブジェクト指向では基本的には部品の組み合わせという発想なんですが、ユーザーがコマンドを入れないと部品同士に次々処理が移っていくということがなくなります。オブジェクト内部で次のオブジェクトを呼び出せばいいんでしょうが、そうするとロシア人形のように入れ子状に深く深く順番に移るだけで、それ位ならオブジェクト指向でなく普通の順番型のプログラムでも同じ…?

図解するとこんな感じですね。

A手続(A1→A2→Bの呼び出し) B手続(B1→B2→Cの呼び出し) C手続(C1→C2)…

こんな風な処理だと、単純にA1→A2→B1→B2→C1→C2というプログラムでもよいわけで、なんのためのオブジェクト指向なのかわかりません。どっか私が誤解しているような気がするな…??(--;)

ただ、私は以前からオブジェクト指向的発想を重視しているためか、処理の内部のまとまった手続とか、何度も使う手続はどんどんひとまとまりにしてしまうんですが、さすがにDelphiではHSPよりはるかに簡単に出来ます(^-^)

たとえば、メインマップ上をマウスカーソルが動くと、旗の上であれば城名をヘルプチップで表示させる手続を作っていたのですが、それに初期設定の英雄選択の際にその城を支配する英雄の能力や城の状態表示もするようにする手続も含ませました。ところがこうするとだんだんマウスカーソルが移動する時におこる手続自体が長くなってくるんですよね。初期設定ではさっきのような表示、何もなければヘルプチップだけ表示、ゲーム中の敵の城の場合の表示、味方の城の場合…こういった内容を含めば含むほど、ひとつの手続が長くなっていきます。こういう時には、ひとまとまりの処理ごと別の手続にして取り出せばすっきりします。ついつい長くなっていきますが、気づいた時点で外に出すようにすると、さすがにすっきり見渡しやすいプログラムができあがる…気がします(^^;

そう考えると、さっきのA手続B手続C手続もそれはそれでいいのかな?という気になってきます。この中ではA手続がユーザーの処理だとすると、B手続がイベントがあった場合の処理、C手続が表示処理といった感じでしょうか。何もなければA手続から直接C手続に移動することもあるでしょう。単純にA1→A2→B2…だとつまらない手順処理ですけども、B手続やらC手続が意味のあるまとまりだと、それなりに分けることに必然がでてきそうです。というより、A手続のような一番最初の処理は、手順のための処理(メインルーチンのような)ではなく、ユーザーコマンドであるべきなんでしょうね。そうすればユーザーのコマンドを契機に一連の処理が実行される。

とすると、先程の疑問、英雄選択の後は、各種表示を整えて、ユーザーコマンド待ちとすればいいんでしょうね。最初のA手続はコマンドに応じて処理する最初の部分だとすれば、深い階層どころか、もっとも上の階層なって、別段問題はなくなりそうです。

ううむ、やっぱりなかなか馴れませんね(^^;手順順にどうしても発想してしまうので、一連の処理を終えると、はて、次はどこから始めればいいんだろう?と悩みます(^^;もうちょっとしたら馴れるんでしょうかねえ(^^ゞ

それからダイアログ。前回もどのダイアログを使おうか悩んでました。けど、諦めようとして…やっぱり諦めきれん(~_~;)どう考えても、三國志のゲームのダイアログのタイトルバーに「sang」とか出てたら興ざめな感じ、しません?私だけかな(^^ゞiやら?やらのアイコン付きのダイアログだと、情報とか確認とかがタイトルバーに出るんですけども、ややたいそうな気がするんです。城をクリックしてください、というような簡単な指示ダイアログに、「i」と吹き出してもらっても、ねえ(^^;

ところが単なる文字とOKだけのダイアログだと、「sang」というアプリケーションの名称が出るだけで、タイトルバー の文字列変更はどこをどうヘルプをひっくり返しても出てきません。前回からこればっかり探してたりしますが(^^;無情にも、ありません(T-T)OKについても、OKじゃなくて「是」とかしたいんですけどねえ(^^ゞ雰囲気ですよ、雰囲気。でも、ないです(ToT)

こういうのはやっぱり、プロフェッショナル版を買って、ダイアログのルーチンを調べて変更しなきゃならないのかしら?HSPの時も自分でダイアログ作ったしなあ(^^;

という風に、雰囲気づくりのため諦めきれずにややねばってみてましたが、どうもないもんはない、という感じです(ToT)ところが、ちょっとした思いつきですが、実行できるアプリケーションの名称を直接「sang.exe」から「三國志.exe」に変えてみると、なんと、ちゃんとアプリケーション名称がタイトルバーに出るダイアログが「三國志」に変わったではありませんか(◎o◎)おう、でけた!ただ、さすがに「丞相からの報告」とか出来ないんですよね〜(^^;なんとか変えることはできんのかしらん(?_?)

こんな感じで、細かいところでうろうろしてます(^^;;;まあ、進む時は一気に進むと信じて、一歩一歩進んでまいりましょう( ;^^)

index

〔TopPage〕

このページへのリンクはフリーです。
このページについてのご意見、ご質問などは、kr_ryo_green@yahoo.co.jpまでお願いします。
Copyright 2003© kr_ryo All rights reserved.
訪問件数