kr_ryo 徒然日誌 <2002年10月6日分>

三國志製作記!

2週間ぶりの更新です。この間ひたすら会社の自分の部署の予算案をこねくりまわしていましたが、ようやく提出しました。後々聞くところによると、いろんなところで千円足りなかったり理由がなかったり、帳尻が合わなかったり、と(^^;Aまあ多少のことは大目に見てもらえるようなので、なんとか乗り切ったような(^^;;;資料の山を片づけ始めると、自分の机の表面を久しぶりに見た気分です。

そんなこんなで、ようやく多少余裕がでてきた気分です。久しぶりに三國志製作をしてみようかな、と、いうことでkr_ryo版三國志製作記です。いかにも連載しそうな名前ですね(;^_^A今回も、得意のDelphi初心者Kを登場させての物語形式でお送りしましょう...

Kの前作SWG製作の際はグラフィックやBGMに時間がかかったところ、今回の三國志製作はインターフェース作成に大幅に時間がかかっていた。インターフェースを一から作るのではなく、最初から開発環境側で用意されている方が、それを利用するだけでよく便利であろう、そう考えてKは、従来までのHSPからDelphiに開発環境を移した。

しかし、業務用にも使用されることのあるプログラム開発環境Delphi6は、Kにとって高いハードルであった。初心者向けの良本を確保してようやくDelphiのなんたるかをそれなりに理解することができた。さらにメルベースの製作を通じてかなりの技術を身につけることができたようだ。

この自信を手に、いよいよ三國志をDelphiベースで制作してみようとした……いきなりつまずいた。地図上の旗を表示できない!しばらくヘルプを徘徊していたが、ようやく見つけ出したのがImageList機能。見つけられれば早い。ようやく再び地図上に旗が立った。

ところが。三國志の62の城=旗の位置をまた一から座標指定してやらないといけない。適当な位置を指定して、出たところを微修正するという方法も考えられたが、これを62回も再び実行するのは、邪魔臭い!なんとかならないかしら…?

すぐ思いついたのが、旧HSP版の座標指定を使うこと。1つ指定してみた。どうも微妙にずれているような気がする・・・マウスカーソルの座標位置を表示するプログラム(というほどのものではないが・・・(^^;A)を組んでみると、どうも縦に5、横に25ドットずれている。ここはMSExcelを使って全部に足し算してみよう。こういう時は、Delphi上で無理やりなんとか数字をいらうようなことをせず、他のソフトを使ってみる方がよい。もちはもち屋…

全部変更したものの、旗の一個一個づつを「表示させる」機能を使うのはややかっこ悪い。表示などの機能と表示などのためのデータは分離する方がKは好きだった。配列変数=レコードを使ってみよう。以前学習した「カンタン!Delphiプログラミング」を再学習。レコードやクラスやスコープといった内容を読み込む。

ただ漫然と読むより、必要な事項を探すために読むのとでは定着力も理解力も違う。今回は単なる配列変数としてレコードを使うんでなくて、座標も、城名も、州名も、支配者も、ついでに色を変更するという機能もつけてクラス(=オブジェクト。ボタンがボタンオブジェクトとして用意されているように、独立した部品)として使ってみよう。こうなると、単なる城座標変数というより、総合城情報表示系機能という感じ。おおかっこいい!将来的には金や武将数や兵士などの情報もまとめてみれそうだ。

さすがに一筋縄ではいかなかったが、なんとか一個のクラスを作ることができた。ここで宣伝。まず、Delphiでは、なんかのなんかのなんかというような指定をする。メモ機能のテキストプロパティに「Hello,Wold!」を代入すると、メモに「Hello,Wold!」と表示できる。その際、「Memo1.」の「.」を入力した時に、「Memo」機能で利用できる機能やプロパティなどが一覧表示されるという機能があり、非常に便利であったりする。それがもともとDelphiの用意しているプロパティを表示するだけではない。今回Kが作った城表示クラスにおいても、Shirohyoziクラスの中にshirozahyoレコードを持つような指定をしていることにより、「Shirohyozi.」で「shirozahyo」などが一覧表示するのである!自分の指定したプロパティが基本機能とともに並んでいる図は一種の感動を呼ぶ(ё_ё)一度お試しあれ。

さて。変数代入機能をつくり、さっそく実行。無事全部表示できた・・・おっと、全部ずれている(T-T)そう、HSP版の地図とDelphi版の地図は、サイズが違ってたのだ・・・

しかも、試しに「」の字がDelphiで入力・表示できたことをいいことに、エクセルで城名などの「言焦」や「エン州」といった字を、外字からUNICODEに再び変更して整理したのに、Delphi上で全部「?」になってしまった。よくよくコードを調べてみると、「」はUNICODE固有文字でなく、普通のShift-JISにもあったのだ。「言焦」はUNICODE固有=Onlyのため、やっぱりDelphiでも表示できない。くそー( ̄^ ̄)外字問題はまだまだつきまとわれそうだ。

ということで今週は時間切れ。おや、一気に進んだ気がする\(´▽`)/

index

〔TopPage〕

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