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

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

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

Small Basic 入門

15.すべて拾い集めようゲームを作ろう その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] には四角オブジェそのものが保存されます。
あとで四角を消すときに必要になります。