初心者のためのゲームプログラミング入門

プログラミングとゲームの杜

初心者のためのプログラミング入門 & ゲームプログラムの作り方入門

Small Basic 入門

14.すべて拾い集めようゲームを作ろう その2

 

[ すべて拾い集めようゲームを作ろう ] の続きです。

 

 

サブルーチンを使ったプログラムに変更しよう

これからプログラムに色々と追加していきます。
見易くするためサブルーチンを使ったプログラムに変更してみましょう。

サブルーチンを使ったプログラムに変更

 

サブルーチン init( ) は、このプログラムで一度だけ行う初期処理を、
start( ) は、ゲーム開始前の準備をするための所とします。

 

サブルーチンの構成は次のようになります。

サブルーチンの構成

タイトルからゲームオーバーまでは繰り返し処理されます。

 

 

マウスカーソルの情報を使おう

ゲームでは表示した四角とマウスカーソルが重なったか調べる必要があります。
マウスカーソルの情報を使う方法を学んでいきましょう。

次のサンプルを実行してください。

マウスカーソルの座標を取得するプログラム

マウスカーソルをウィンドウ上で動かすと、タイトルに表示された数値が変わります。
4行目と5行目でマウスカーソルの座標を取得し、その座標を6行目でタイトルに表示します。ちょっと調べたいときにタイトルは便利です。

マウスカーソルの座標を取得するには MouseXMouseY を使います。

 

さて、注目するのは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 ] には四角オブジェそのものを保存します。
あとで四角を消すとき必要になります。