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

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

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

Processing 入門

10.みどりを救え2 配列と関数の引数

 

今回は [ みどりを救えゲームを作ろう ] の続きです。

前回はプレイヤー(自機)の表示と移動をしました。
次は、複数のオブジェクト(落下物)を表示・移動させます。

私の組むプログラムの変数名は短め(文字数が少ない)です。
一般的には、意味が分かる名前が良いとされています。

 

 

複数のオブジェクトを表示しよう

複数のオブジェクト(落下物)を表示していきます。
プログラムを次のように変更しましょう。
変数 ow, oh はオブジェクトの幅と高さです。

 

複数の四角を表示する

 

31行目、変数 i に 40 を掛けています。(さらに+5して微調整)
これで四角が横に 40 ずつ、ずれて表示されます。

 

 

実行してみましょう。

 

複数の落下物を並べて表示する

 

 

配列変数を使おう

オブジェクトを落下させます。
ここで配列変数(ただの「配列」ということが多い)を使います。

配列変数の働きは変数と同じです。
ただ番号をつけて同じ名前の変数を複数あつかえるようにしただけです。
番号をつける時にはカッコ [ ] を使います。
キーの位置はだいたい Enter キーの横にあります。

 

配列変数の使い方

 

 

プログラムを次のように変更してください。
7行目で配列変数の宣言をしています。
このように宣言して oy[0] から oy[9] までの 10個の変数が使えるようになります。
0 から 9 で 10個です。1 から 10 ではありません。

 

配列変数を使って動かす

 

36行目、y座標を配列 oy[i] に変更しています。
42行目、y座標 oy[i] がウィンドウの外へ出たかチェックしています。
height でウィンドウの高さを取得できます。

 

実行してみましょう。
10個のオブジェクトが落下を繰り返します。

 

配列変数の使い方

 

 

オブジェクトの色を変えよう

オブジェクトの色を変更します。
オブジェクトが発生するたび、色を変更したいのでランダム関数を使います。
プログラムを変更しましょう。

 

配列に色情報を入れる

 

15行目、配列 oColor に色の情報(0 か 1)を入れてます。
random 関数は、0から引数未満のランダムな数を発生させます。
未満とは引数の数を含まない、それより小さい数となります。

random (2) の場合、0から 1.9999... の間の数を
random (100) なら、0 から 99.999... の間の数を発生します。

int ( random (2) ) とした場合、0か1の数になります。
難しくいうと float の数を int にしているのです。

50行目、ここでも色情報を変更します。
これで画面外へ出てまた上から表示される時、色が変わって表示されます。

 

 

実行してみましょう。
落下を繰り返すたびに色が変わります。

 

実行するたび色が変わる

 

 

関数で引数を使おう

これまでのプログラムの中に同じ処理をしている所があります。
それは setup() と objMove() の中にあるオブジェクト用の配列を
初期化している場所です。

 

同じ処理は関数にしてまとめる

 

setup() では初めに表示するため初期化を行い、
objMove() では画面外へ出たとき、初期化しています。
今後もオブジェクトに関する変数は増えていくので、初期化の処理を
関数にしてまとめたいと思います。

 

 

次のように変更しましょう。
新たに関数 objInit (int no) を追加しました。

 

引数のある関数

 

今までの関数にはカッコの中になにもありませんでした。
void 関数名(引数)
というようにすることで、数値を渡すことができるようになります。
例えば objInit (5) を実行すると
oy [5] = 40;
oColor[5] = int ( random(2) );
この処理が行われます。
変数 no の中に 5 が入るわけです。
とても便利なので覚えましょう。