次は変数の種類を覚えておきましょう。
代表的な変数は、グローバル変数とローカル変数です。
このProcessingはJavaをベースにして作られているので、実際にはメンバ変数というのもありますが、これについては「5.3 オブジェクト指向プログラミング」の節で説明します。ここでは、グローバル変数とローカル変数だけを理解しておきましょう。
まずは、次のふたつのサンプルをProcessing上で再生してみてください。
その際、変数 i の値がコンソールに表示されますが、その値がどのように違うかを調べてください。
ローカル変数
int counter;
void setup() {
counter = 0;
}
void draw() {
int i = 0;
if ( counter < 5) {
println(i);
i ++;
counter ++;
}
}
グローバル変数
int i;
int counter;
void setup() {
i = 0;
counter = 0;
}
void draw() {
if ( counter < 5) {
println(i);
i ++;
counter ++;
}
}
再生してみれば分かると思いますが、上のローカル変数iは、値が常に0で変化しません。逆に、グローバル変数iは、draw( ) が実行されるたびに値が1ずつ増えているのが分かると思います。
まずここで覚えておいて欲しいことは、描画機能を実行するdraw( ) のように、あるまとまった機能をパッケージ化したものを「関数」(function)と呼ぶということです。ちなみに、ellipse()やfill()などもすべて関数です。
さらに、ローカル変数はひとつの関数の中のみで有効ですが、グローバル変数は関数の外に書かれているので、どの関数からでも共有できるのです。
色々変数を宣言する場所を変えて色々試してみましょう。