トップページへ

setupとdraw

初期化関数とメインループ関数

Processing を使ったプログラミングでは、初期化関数( setup 関数)メインループ関数( draw 関数)という2つの関数を使ってプログラムコードを構成するというスタイルが一般的に行なわれます。

この2つの関数は他の関数とは少し異なる特殊な関数で、プログラムが実行される際に特定の順番で実行されるようになっています。プログラムの実行ボタンを押してプログラムの動作が開始すると、まずはじめに初期化関数内に書かれたコードが実行されます。その後、メインループ関数内に書かれたコードがコードが実行されます。他の関数と異なり、メインループ関数内に書かれたコードは無限ループのように何度も繰り返し実行されます。ウィンドウを消したり停止命令を出したりしない限り止まることはありません。


簡単なコードを用いてこの2つの関数の挙動を確認してみましょう。

マウスクリックで描画がリセットされます(ブラウザ上のみ)。

コード

draw関数内で line 関数を使って線を引いています。draw 関数はプログラムの実行中常にその処理内容が繰り返されるため、線は1つだけではなくいくつも書き加えられて行くことになります。

noLoop()とloop()命令

noLoop()命令を使うと、draw関数内の処理が一度しか行なわれないようにすることができます。

このプログラムを実行すると、画面には線が1つだけしか引かれません。setup 関数内で noLoop()命令を使っているので、draw 関数のループが停止しているからです。このように、noLoop()命令を使うことで draw 関数のループを停止させることができます。

draw 関数のループを再開させたい時は loop()命令を使います。この例では、マウスボタンが押された時に loop()命令が実行されるようにしています。プログラムを実行して、画面内にカーソルを合わせてマウスボタンを押してみて下さい。ボタンが押されている間だけ、線の描画が繰り返されます。ボタンを離すと noLoop()命令が実行され、draw 関数のループは停止します。

フレームレート

frameRate 関数を使うことで draw 関数の実行スピードを変えることができます。

1秒間に何回のペースで draw 関数が実行されるかを frameRate 関数を使って変更できます。例では 10 を与えているので、10fpsで線の描画が行なわれます。