【四川省への道】第1話

この文書は、PIシリーズのザウルス用に作成したAdd inソフト【四川省】の 制作風景を記録したもので、NIFTYのフォーラム FZAURUS に書いた物を 一部手直しして転載したものです。

こんにちは、トラップですぅ。(^o^)/

先日、Add-Inソフト「四川省 for Zaurus」と、そのソースを公開させて
頂きました。余り綺麗なソースではありませんが、Add-Inを開発したい
方々の参考になれば嬉しいなぁ〜なんて思います。(^-^)

そこで、せっかくソースがあるのですから、四川省開発秘話(^^;というか
私の(いい加減な)Add-In開発法を数回にわたりご紹介したいと思います。
そですね・・・気楽なアドイン講座みたいなものですので、質問・鋭い
突っ込みなど、お待ちしておりま〜す。(^^)

◎「四川省との出会い」

 ある日のことです。
 お昼休みだというのに、みんながWindowsマシンの前でゲームに
 熱中しています。画面を見ると、麻雀牌がいっぱい並んでいます。
 麻雀に興味はないので、初めは遊ぶ気がおきなかったんだけど、
 みんなハマってるから、ちょっとだけ・・・。あれ?これは
 予想外におもしろい(^^)。

    「よし!ザウルスに四川省を作ろう!(^o^)/」

 ・・かくして、初めてのAdd-Inゲーム製作が始まったのでした。

◎まず最初に・・・

 最初に考えたのは、「本当に実現できるだろうか?」という点です。
 四川省は、1画面に、36種類の牌を各4個ずつ、横18個×縦8個
 表示しなくてはなりません。

 ザウルスの画面は、「WIDTH」命令によると・・横239ドット×縦168ドット、
 最大で19(39)桁×16行まで可能です。文字で構成するとした場合、絵記号を
 使えば36種類の表現はできそうですから、なんとか18×8個の表示は
 可能でしょう。次に絵で描くとした場合、239/18=13...5、168/8=21で、
 1つの牌が13x21以下の大きさであれば大丈夫そうですね。

 ところで、絵を表示するにしても、どうすればいいのでしょう。
 慌ててマニュアルを探すと・・3つほど方法があるようです。

    (1) ICON 命令
    (2) CALL@16 命令
    (3) GPRINT 命令

 それぞれにつき、掘り下げて考えてみると・・・(1)のICONでは、同時に
 同じアイコンを表示できない為、144個のアイコンを作る必要があるし、
 表示が少々遅いようです。(2)のCALLを使うと、絵の大きさは自由ですが、
 ちょっと扱いづらそう・・・。(1)も(2)も、どちらもファイルをOPENして
 ないとダメです。(3)は横方向は自由でも、縦が8ドット単位という制限あり。

 ここで再度画面構成を考えます。
 画面上部にはタイトルや終了ボタンなどを置きたいですから、18ドット程度
 あけます。牌の周りにも少し空間が欲しいので、上下左右に8ドットあけて
 再計算すると・・(239-16)/18=12...7、(168-18-16)/8=16...6 となり、
 1つの牌あたり横12×縦16ドットなら良さそうです。
 (縦が8の整数倍でGPRINTにもぴったり。(^-^)b)
 画面のイメージは大体決まりましたし、表示手法もまず問題なさそうです。

 ここで、気の早い私は牌のデザインを始めちゃいました。(^^;
 1つあたり12x16といっても、実際には並べた時に見易くする為の"区切り"が
 必要ですから、影のような効果も考えて、牌の右と下に1ドットずつ黒い線を
 入れることにします。残りは11x15ドット・・・この中に麻雀牌の絵を表現しないと
 いけません。ここから先は、努力と根性あるのみです。ちなみに今回は、
 Windowsのペイントブラシを拡大モードにして使い、1つ1つ配をデザイン
 していきました。全てできたところで、GPRINT用のデータに変換します。
 本来ならプログラムで自動的に変換すれば良いのでしょうけど、
 今回はオール手作業で行いました。(^^ゞ

 苦労して描いた牌、ダウンしてみてくださいねぇ〜。(^^)

☆次回予告

 長いわりに内容のない話ですみませんが、導入編ということで・・。(^^ゞ
 次回は、四川省の原形・・牌の表示ルーチンにてお会いしましょう。