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);
}


