LAST UPDATE 1998/07/04


『 その4-2 』


 ■ 変数の宣言について

 プロジェクトエクスプローラのJmainBと表示されている部分を左ダブルクリックすると、図のようなウインドウが表示される。(General)の(Declaration)である。
 JmainBという標準モジュールというのは偉い のである。将来プロジェクト内のフォームの数が増えても、全てのフォームからこのファイル内の変数や関数が参照できるのである。だからゲーム全体に関わるような変数のたぐいはここで宣言しておくべきなのである。
 1行目に Option Explicit と書かれている。これは「全ての変数の宣言を強制する。」という意味で、プルダウン:「ツール→オプション→編集タブ」を開くとそういうオプションがあるので、これはぜひチェックしておいてほしい。
 ベーシックの伝統でプログラミング手続きを簡略化するために、変数の宣言はしなくても良いというのがある。昔ベーシックがROMに入っていて、電源投入と同時にベーシックが使えるようなパソコン(マイコンと呼んでいたかもしれない)の時代には、宣言をしていない変数は「浮動小数点型」になっていた。VBの場合は「整数型」になるのである。この状況はこういった点でも混乱を招く。
 「いちいち変数に宣言が必要というのはメンドクサイ。」と思う人もいるかもしれないが、そういった考えは捨ててほしい。「変数の宣言をしなくても良い」という状況にはそれはそれは恐ろしい落とし穴がある。それは人間が必ず犯してしまう「スペルミス・タイプミス」である。
 例えば自分が作っているプログラム内で、とても大切な変数でM_Countというのがあったとしよう。それをうち間違えてM_Conutとしてプログラムのどこかに書いてしまった。プログラムが巨大化してくると、こんな小さな間違いを見つけるのは不可能である。謎の動作不良で悩みに悩んで、原因の発見に1週間費やし、それがただの変数名のうち間違いだったというのではあまりにも不幸である。薄幸である。ということであるから「いちいち変数に宣言が必要」ということにしておけば、VBが「M_Conutなどという変数は宣言されていない」というエラーを起こすので、すぐに発見できるのである。



 ■ 変数の種類

なんだか文章による説明ばかりが続き申し訳ないのであるが、そろそろ説明が必要だと思う。なんせ対象は「プログラムド素人」の人たちである。ある程度プログラムを知っている人にとっての常識は、知らない人にとっては知らない事実なのである。(わけがわからん)
 VBでは実にたくさんの変数型が存在している。中にはお金を表す「通貨型」などというのもある。ちなみに私はゲームプログラマーであるからして、通貨型という変数は使ったことがないし、詳しく知らない。私は学者ではないから自分に必要のないことは知らなくても良いのである。ところでタガログ語で「ツーカ(正式にはスーカらしいが発音するとツーカに聞こえる)」とは「酢」という意味である。
 ゲーム開発に必要な変数型は下図の通りである。

名前 宣言方法 範囲や目的
整数型 As Integer %±3万くらい
長整数型 As Long & ±10億くらい
浮動小数点型 As Single ! 小数点が使える
倍精度浮動小数点型 As Double # 小数点が使えて精度が高い
文字列型As String $ 文章や文字を扱う
ブール型 As Boolean   True か False
バイト型 As Byte   0~255まで

 ~ 整数型と浮動小数点型 ~

 2つの変数を宣言する。
    Public XL&
    Public XF!
もしくは
    Public XL As Long
    Public XF As Single
 両方とも同じ意味である。XLは長整数型として宣言されていて、XFは浮動小数点型として宣言されている。
 そこで次のような計算をしてみる。
    XL = 10 / 3
    XF = 10 / 3
 この結果が違うのである。
    XL = 3
    XF = 3.333333
になる。XLは整数型で宣言されているため、少数部分は無視され切り捨てられてしまうのである。
 そしてXFは浮動小数点型なので、小数部分まで計算されるのである。浮動小数点の演算は遅い。最近のパソコンはコプロセッサが組み込まれているので、浮動小数点演算は速いはずなのだが、比較だとかなんだとかを含む実際のプログラム内ではやっぱり遅い。ということで、小数部分の必要ない変数(面数だとか自機の数など)は整数型を使う。そして、少数が使えないと話にならない3次元座標だとか回転角度は浮動小数点型を使うのである。

 ~ 文字列型 ~

 この文字列型という変数はなかなかクセモノである。固定長と可変長という違いがあったり、内部コードがVB5になってから UNICODE というわけのわからない方式になっていたりである。
 これには過去にずいぶんと楽しませてもらった記憶がある。これをちゃんと説明していくと(というか私も全貌を知らない)、本1冊分になりそうなので、ここでは割愛する。今の時点では文字や文章を扱うための変数だと理解していれば十分なのである。
 さて、ここで UNICODE について全てを、今知りたくて仕方のない人。
 あなたは立派なゲームプログラマーにはなれないと断言してしまおう。前にも書いたが、プログラマーは学者ではないのである。必要のないことは深く気にせずに前進するのである。合い言葉は「とりあえず動いてるから良いんでないべか(北海道弁)。」である。私もそうであるし、現在レンダラーを開発中のD氏も「とりあえず」という言葉が大好きである。ゲーム開発、特に新ハード用の開発は「とりあえず」のかたまりである。これを受け入れられない人(几帳面な人)は間違っても立派なプロにはなれない。



その4-1 | その4-2 | その4-3 | その4-4 | その4-5 | その4-6 | その4-7

『 サルのゲーム製作講座 』 目次 | その 1 | その 2 | その 3 | その 4 |
その 5 | その 6 | その 7 | その 8 | その 9 | その 10 | その 11


もどる

e-mail: sc_3da@magical2.egg.or.jp