Small Basic 入門
14.すべて拾い集めようゲームを作ろう その2
[ すべて拾い集めようゲームを作ろう ] の続きです。
サブルーチンを使ったプログラムに変更しよう
これからプログラムに色々と追加していきます。
見易くするためサブルーチンを使ったプログラムに変更してみましょう。
サブルーチン init( ) は、このプログラムで一度だけ行う初期処理を、
start( ) は、ゲーム開始前の準備をするための所とします。
サブルーチンの構成は次のようになります。
タイトルからゲームオーバーまでは繰り返し処理されます。
マウスカーソルの情報を使おう
ゲームでは表示した四角とマウスカーソルが重なったか調べる必要があります。
マウスカーソルの情報を使う方法を学んでいきましょう。
次のサンプルを実行してください。
マウスカーソルをウィンドウ上で動かすと、タイトルに表示された数値が変わります。
4行目と5行目でマウスカーソルの座標を取得し、その座標を6行目でタイトルに表示します。ちょっと調べたいときにタイトルは便利です。
マウスカーソルの座標を取得するには MouseX、MouseY を使います。
さて、注目するのは1行目です。
MouseMove にサブルーチン名を代入(登録)すると、マウスを動かしたときに登録したサブルーチンが呼び出されます。
つまりこの処理は、マウスを動かしたときのみ OnMouseMove を呼び出し、その座標を取得してタイトルに表示しています。
この手法をゲームにも使います。
MouseMove を使ってみよう
MouseMove を使ってマウス座標を取得する処理を入れます。
9行目、MouseMove に OnMouseMove を登録しています。
何かが発生した(何か状況が変化した)ことをイベントと言います。
今回のような場合は、マウス移動イベントと言ってもいいでしょう。
23行目以降、マウスのx・y座標を取得しています。
正常に動いているか調べるため、タイトルに出力しています。
配列変数を覚えよう
沢山の変数が必要なとき、1つの変数名で管理する方法があります。
変数名に [ ](角かっこ) を付けて配列変数にするやり方です。
かっこはキーボードの次の所にあります。(異なる場合もあります)
次のサンプルを見てください。
1から3行目まで、変数 rnd[0] から rnd[9] までの中に乱数を代入しています。
8行目以降、rnd[ ] の中の乱数を表示しています。
5行目は、[ ] の中に数字を直接入れて rnd[5] を参照しています。
このように変数名に [ ] を付けることをインデックスを付けるといいます。
インデックスを付ければ1つの変数名で複数の値を管理できるようになります。
なお、配列変数の使い方は他にもあります。
今回の使い方が一番シンプルなので、まずはこの方法に慣れてください。
四角の情報を保存しよう
配列変数を覚えた所で、四角の情報を保存します。
変数のあとに [ i ] を付けて、For ループで回した数だけ配列変数を作ります。
配列変数 oX[ i ] と oY[ i ] には四角の座標を入れます。
この座標を使ってマウスカーソルとの当たり判定をします。
obj[ i ] には四角オブジェそのものを保存します。
あとで四角を消すとき必要になります。