正しい関数の使い方

前回関数の概要と使い方を学びました。初期化にtest1という関数、メインとして図形を描くのがtest2という関数でした。 それら関数の中身を実行するには別途関数の名前を書いて呼び出さなければなりませんでした。 しかしこれでは面倒です。そのため自動で呼び出される関数が2つProcessingで用意されています。 setup()とdraw()という関数です。setup()は実行したときに一番最初に自動で実行される関数、 draw()は関数内の処理がループし続け実行される関数です。 ループし続けるというのは関数の中に記述された処理の最高尾までいくと、その関数の先頭に戻るという意味です。 以下に記述方法(上)と、その記述方法で前回のプログラムをこの書式で記述した場合を記載します(下)。 このプログラムを実行してください。いつもと同じ結果が返ってくると思います。

//最初に自動で呼び出されるsetup
void setup(){
   最初に実行したい処理を記述
}

//setupの次に自動で呼び出されるdraw
void draw(){
   メインとなる処理を記述
}
//初期化
void setup(){
   size(200,200);
   colorMode(HSB,100);
   background(99);
}

//メイン
void draw(){
   ellipse(100,100,100,100);
}

setupは最初に自動で実行され、ここで初期設定をします。そして次にdraw()が自動で実行されます。 先ほど書いたようにdrawはdraw内の処理が1番下までいくと、関数内の先頭に戻ります。つまりずっとループし続けます。 ここではdraw()は1行しかないため変化が見られませんが、例えばランダムな位置に図形を描くというプログラムをdraw()の中に記述した場合、 実行を止めない限りずっと図形は描かれ続けます。そのため、このdrawはメインで処理したい内容を記述するのに適しています。

ローカル変数

また見慣れない言葉が出てきました。あと少しです。頑張りましょう。 ローカル変数とは関数の中で記述した変数は、その関数の中でしか使えない変数ということです。 例えばsetupに記述した変数はdraw関数の中では利用できません。記述するとエラーになります。 しかし、変数としての記述方法や使い方は今までと全く同じです。以下の例を入力して実行してみましょう。 エラーが表示されるはずです。

void setup(){
   size(200,200);
   colorMode(HSB,100);
   background(99);
   //aに10を代入
   int a = 10;
}

void draw(){
   //x座標をa(10)にしようとするがエラーになる
   ellipse(a,100,100,100);
}

グローバル変数

ローカル変数とは逆に関数の中でも外でも共通に使えるのがグローバル変数です。 これも使い方や記述方法は今までの変数と同じです。関数の外に宣言したものはすべてグローバル変数となります。 先ほどの例ではaがローカル変数だったため、drawの中では使用できずエラーがでました。 今回はaをグローバル変数で宣言して、先ほどのプログラムを動くようにします。

グローバル変数
int a = 10;

void setup(){
   size(200,200);
   colorMode(HSB,100);
   background(99);
}

void draw(){
   //x座標をa(10)で設定
   ellipse(a,100,100,100);
}

どうでしたか?なんとなく関数と変数の使い方がわかったでしょうか? 実はここで説明した関数の使い方は一部でしかありません。 関数には他にも引数や戻り値など様々な機能があります。 しかし、当サイトではそれらには触れません。もしこのサイトで勉強を終え、 もっとProcessingのことを学びたいと思えば各自で勉強してください。

広告