Eclipse -- Juno
ProcessingをEclipseで書いていて、PGraphicsが使いたくなった。
しかし、公式リファレンス通り
import processing.core.PApplet;
import processing.core.PGraphics;
public class PGraphicsTest extends PApplet{
PGraphics pg;
public void setup() {
size(200, 200);
pg = createGraphics(100, 100);
}
public void draw() {
pg.beginDraw();
pg.background(102);
pg.stroke(255);
pg.line(pg.width*0.5F, pg.height*0.5F, mouseX, mouseY);
pg.endDraw();
image(pg, 50, 50);
}
}
と書くと、
Exception in thread "Animation Thread" java.lang.NoSuchMethodError: tracer.PGraphicsTest.createGraphics(II)Lprocessing/core/PGraphics;
at tracer.PGraphicsTest.setup(PGraphicsTest.java:12)
at processing.core.PApplet.handleDraw(Unknown Source)
at processing.core.PApplet.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
とか出て死ぬ。
いろいろ試した結果、
size関数でレンダラを明示(デフォルトのはJAVA2Dという名前らしい)
creategraphicsも同じレンダラを指定すると動くみたい。
つまりこういうこと
import processing.core.PApplet;
import processing.core.PGraphics;
public class PGraphicsTest extends PApplet{
PGraphics pg;
public void setup() {
size(200, 200, JAVA2D);
pg = createGraphics(100, 100, JAVA2D);
}
public void draw() {
pg.beginDraw();
pg.background(102);
pg.stroke(255);
pg.line(pg.width*0.5F, pg.height*0.5F, mouseX, mouseY);
pg.endDraw();
image(pg, 50, 50);
}
}