第3回 関数(メソッド) |
1 Processingの Active Mode と Static Mode |
・Processingでは実行時、2つのModeがある - どちらのモードで実行するか、はソースの書き方で自動的に判別される (1) Static Mode - 静的な記述、ソースの上から下へ順番に(逐次)実行される ![]() (2) Active Mode - 関数(メソッド)を記述してプログラムを構成する - C言語の形式に近い - グローバル変数(的な?)も利用可 - void setup() 関数から実行開始 ![]() |
2 関数の呼び出し |
・関数は以下のようにして呼び出す - setup()関数から処理が始まる
![]() ・setup()関数とdraw()関数は特別な関数 - setup()関数 ・・・ プログラム開始直後、最初にシステムから呼び出される - draw()関数 ・・・ プログラムが終了するまで、常にシステムから1秒間に60回(変更可)呼び出される |
3 変数の有効範囲 |
・変数宣言の位置によって、有効範囲が異なる - プログラム全体で(どの関数でも)利用可能な場合
- 以下の場合はエラーとなる
|
4 関数の引数 |
・関数を呼び出すとき、値を渡すことができる - 渡す値(関数が受け取る値)のことを「引数(ひきすう)」と呼ぶ
- 引数の変数の型は基本的に 呼び出し側 と 呼ばれる側 で同じにしないとダメ - 以下は、良くない例(Processingでは、とりあえず実行できるけど)
・複数個の引数 - 同時に複数の引数を渡すことができる - 呼び出し側、呼ばれる側において、引数の 個数、型 を同じにする必要がある
- 異なる型の組み合わせもOK
|
5 関数の戻り値 |
・関数は戻り値を返すことができる - 呼び出し元に値を1個返す(戻す)、 「return」を使う - 戻り値の型が int型の場合、関数の接頭語が「void」から「int」に変わる - 戻り値の変数の型と同じにすること(下記では ret が int型 なので、関数の接頭語も int型 になっている) - 戻り値がない場合の関数の接頭語は「void」
- 戻り値の型が boolean型 の場合、下記のようになる
・Javaでは複数個の戻り値を返すことはできない |
6 Processingの draw() 関数 |
・Processingで draw()関数 は特別な関数 - プログラム実行中、自動的にシステムから1秒間に60回呼ばれる(デフォルトは60fps) - draw()関数が呼ばれるごとにカウントアップ、表示する
- fpsを10に設定する、 frameRate(); 関数を呼び出す
- frameCount変数は特別な変数、draw()関数が呼び出された回数が記録されている(Processingのみ、Javaにはない) - frameCountを表示する例
![]() ・draw()関数 で毎回画面を初期化(画面をまっさらに)する - draw()関数で描画処理を行う前に、 background(255); を実行すると、画面が初期化される - 初期化しないと、それまでに描画した跡が残る <〇が左から右に移動するサンプルプログラム>
background(255);を削除すると、右図のようになる ![]() |
7 Processingのマウス操作 |
・Processingでマウスの座標を得る - mouseX、mouseY 変数は Processing の特別な変数で、現在のマウスポインタの位置(xy座標)が格納されている - mouseX、mouseY を表示する、その位置に〇を描画する
・マウスボタンが押されたときの処理 - マウスボタンが 押されている/押されていない の情報はリアルタイムに mousePressed 変数に格納される - マウスボタンを押している間、●になる
・マウスボタンが押されたときに呼ばれる関数 - void mousePressed() 関数はマウスボタンが1回押されると1回呼ばれる - マウスボタンを押したところに✕を描画する
|
演習 |