師匠T:うむ、師匠Tである! 冬が近づいてきたが、そんなことなどこのわしの目には入らぬ! 気にせずどんどん進んでいくぞ!
弟子D:師匠、それはただ目をそらしてるだけじゃ……。
何か言ったか?
いえ、なんでもないです……。
さて。今回は予告の通り、MyCharaクラスの内容を説明するとともに、MyCharaModuleモジュールの内容を説明していくぞ!
しっかりとついてくるように!
は、はい……。
【 コンストラクタの中身を解説じゃ! 】
さて。まずはこれがMyCharaクラスのコンストラクタの内容であったな。
はい。
まず、これからじゃ。
Handle = LoadGraph("mychara.png")
これは特に難しいことはなかろう。LoadGraph関数で自機の画像を読み込み、そのハンドルを、Handleプロパティに設定しているのじゃ。こうすることで、スプライトで画像を表示させることができるのじゃ。
ふむふむ。
そして続いてはこれじゃ。
X = SCREEN_X + SCREEN_W / 2
Y = SCREEN_Y + SCREEN_H -48
確か、XプロパティとYプロパティは、スプライトの位置を表すプロパティでしたっけ。つまり、そのスプライトの位置を設定しているわけですか。
うむ。そして、定数SCREEN_X、SCREEN_Yは、ゲーム画面の位置、そしてSCREEN_Wはゲーム画面の幅、SCREEN_Hはゲーム画面のの高さを表しているのであったな。つまり、横位置を、画面の左端から画面の幅の半分、つまり画面の中央。そして縦位置を、画面の下端から上に48ドットのところに設定しているわけじゃ。この48というのは、自機の高さじゃ。
つまり、こういうことじゃな。
なるほど。そして次の
Revise = DTRUE
※リストではRevise = DFALSEとなっていましたが、Revise=DTRUEが正解です。申し訳ありません。
ですが……Reviseプロパティってなn
はぁっ!!(飛び蹴り
うわぁっ。
おぬしの記憶力はノミ以下なのか。たわけが。
Reviseプロパティは、スプライトが画面の端にはみ出るかどうかを表すプロパティじゃ。
DTRUEならはみださないようにする、DFALSEならはみでるようにする、じゃ。
つまり、自機が画面から出ないように設定しているわけじゃ。さすがに自機が画面からはみ出たら困るじゃろ?
確かに。
それでは続いては、MyCharaModuleの内容について説明していくぞ!
【 モジュールの内容じゃ! 】
まずはこれが、MyCharaModuleモジュールの内容であったな。
はい。
まずは、ここからじゃ。
Dim oMyChara As MyChara
Public Sub MyCharaCreate()
oMyChara = New MyChara()
End Sub
あ、これは俺でもわかりますよ。MyChara型の変数oMyCharaに、MyCharaクラスのインスタンスを入れているんですよね。
うむ。その通り。ここでは、自機を作っておるのじゃ。そして次は、この関数じゃ。
Public Function MyCharaExists() As Boolean
If oMyChara IsNot Nothing Then
Return True
Else
Return False
End If
End Function
これは、自機が存在しているかどうかをチェックする関数じゃ。存在していればTrueを、存在していなければFalseを返す。なお、Booleanというのは、TrueかFalseの二つの値を扱う型じゃ。
ふむふむ。
そして、この関数のポイントはなんといっても、このIsNot Nothingじゃろう。これは、左辺の中身があるかないかを判定する演算子のようなものじゃ。IsNot Nothingだったら、存在していればTrueを返す。存在していなければTrueを返すようにしたければ、Is Nothingを使えばよい。
なるほど!
後は難しいことはないな。MyCharaMainサブルーチンの
If MyCharaExists() Then
MyCharaMove()
MyCharaDraw()
End If
この部分は、先ほどの関数で、oMyCharaの中に自機が入っていれば、MyCharaMove()、MyCharaDraw()の二つのサブルーチンを実行しているのだ。
MyCharaDrawサブルーチンのoMyChara.Draw()はそのまま、oMyCharaを表示させているんですね。
うむ、その通りじゃ。さて次は、自機の移動をやっていこう、と思ったが、そろそろ時間のようじゃ。それは次回のお楽しみにまわすとする。次回も新しい関数が登場する予定だから、楽しみにしているがよい。
はい!
それでは、今回はここまで。来月まで、もうすぐ冬ということを忘れて頑張るがよい。
師匠、だからそれは現実逃避です。
※次の更新は、『スマホでナンプレ!2020』の予定です。お楽しみに!