Processingのバージョン3ではsize()関数の仕様が変更になっています。
例えば
size(640, 480);
のように引数に数字を入れた場合は問題ありませんが、
size(w, h);
のように変数を入れるとエラーになります。
この場合は、以下のようにします。
int w = 640; int h = 480; void setup() { surface.setResizable(true); surface.setSize(w, h); }
より積極的にキーを押すたびにウインドウサイズを変更することもできます。例えば、以下のようなコードでOKです。
void setup() { size(640, 480); surface.setResizable(true); } void draw() { rect(20, 20, width-40, height-40); } void keyPressed() { surface.setSize(int(random(100, 600)), int(random(100, 400))); }
以上は仕様変更の話ですが、Processingのバージョン3にしてから
size(640, 480);
としたのにサイズの指定が効かず、全画面がウインドウになるケースが生徒さんの間で数件見受けられました。
この場合は、以下のようにします。
void setup() { surface.setResizable(true); surface.setSize(640, 480); }
3Dモードの場合は、以下のようにP3Dモードにしてから、リサイズ可能にし、スクリーンサイズをセットします。
void setup() { size(640, 480, P3D); surface.setResizable(true); surface.setSize(640, 480); } void draw() { translate(width/2, height/2, 0); box(100, 100, 100); }