ローカルのProcessingとOpen Processingで動作が異なる例
ローカルのProcessingとは、Processingの公式サイトからプログラムを自分のパソコンにダウンロードして、自分のパソコン(ローカル)で動かしているProcessingです。Open ProcessingはOpen Processingのwebサイトにアクセスして、ブラウザ上で動かしているProcessingです。
以下は、筆者が体験したローカルのProcessingとOpen Processingで動作が異なるケースのメモです。それぞれのエディタにコピー&ペーストして試してみるとよくわかります。まだあると思いますので、随時追加していきたいと思います。
なお、これらは
で確認したものです。
1.int関連
OpenProcessing(Pjs)ではintの扱いが厳密ではない
ローカルの Processing では int の扱いは厳密ですが、 OpenProcessing(Pjs) ではそうでもないようです。下記の例で、ローカルの Processing では、結果は 1 になるが、 OpenProcessing(Pjs) では、 x が int 宣言されているのも関わらず、結果は 1.5 になってしまいます。
*//ローカルのProcessing(3.5.4)とOpenProcessing(Pjs)で動作が異なる例// int処理の違い*int x = 1;x += 0.5;println(x);
ローカルのProcessingでの結果
1
OpenProcessing(Pjs)での結果
1.5
従って、下記のようなプログラムでは、ローカルのProcessingでは円は動かず(xの値はずっと200のまま)、OpenProcessing(Pjs)では動きます(xの値は 200.5, 201, 201.5, 202, …と表示)。
int x = 200;
void setup(){ size(400,400);}
void draw(){ background(255); x += 0.5; println(x); fill(0); ellipse(x,200,50,50);}
※この他、xが配列の添字に使われた場合などでは、ローカルのProcessingとOpenProcessing(Pjs)ではエラーの出方などが違います。
2.日本語文字の拡大表示関連
ローカルのProcessingでは、日本語文字を拡大表示しようとすると、文字化けする!
ローカルのProcessing(バージョン3.5.4)で、text()で日本語文字を画面に表示する場合、通常の表示なら問題ないが、textSize()で拡大表示しようとすると文字化けして□□□と表示されてしまいます。
Open Processingでは、この文字化けは発生しません。
String emoji="SCORE:";String jmoji="得点:";
void setup() { size(1100, 600);}
void draw() { background(0); textSize(50); text(emoji, 100, 200); text(jmoji, 100, 300);}
ローカルのProcessing
Open Processing
※ローカルのProcessingで日本語文字を拡大表示させたい場合は、下記のページを参照してください。