Hi, I’m trying to access PApplet methods in a static class, in this case the color() method. I’ve tried following this discussion, but I can’t make it work.
I’ve written this:
static class myclass {
static int mycolor(final PApplet p) {
int out = p.color(0);
return out;
}
}
but it doesn’t compile due to “unexpected token: int”.
I don’t really know what I’m doing wrong, hope you can help me!
1 Like
You’re doing alright! It’s a PDE’s pre-processor bug!
B/c the name color is both a Processing’s datatype: color
And a PApplet & PGraphics method name: color()
It seems like the name color can’t be used w/ the dot .
operator within a “.pde” file.
This example calling color() as a method of a PGraphics object also triggers this bug:
final PGraphics pg = createGraphics(10, 10);
pg.color(0); // unexpected token: .
exit();
As a workaround, you can place your static classes in a “.java” file instead.
You just need to remove the static
keyword before class
, b/c top classes inside “.java” files are implicitly static already.
You should also report this issue on Processing’s repo:
2 Likes
Thank you for your help and your workaround! I will do that =)
I’ve also created an issue, here is the link to it for future viewers.
2 Likes