Hello, I here have a problem I do not understand: the code below prints to the console : Cannot invoke red() on the primitive type int
void mousePressed() {
color m = get(mouseX, mouseY);
if(m.red() == 255 && m.green() >= 200)
clicked();
}
There are absolutely no integers involved here, m is of type color, not int !
Thanks to anyone who can help me, this is very confusing.
1 Like
A color is secretly an int. This fact is hidden from most casual users.
The red() function is not called on a color. Instead, pass the color to the function:
if(red(m) == 255){
3 Likes
Oh… Once again, I found my own answer right after posting: replacing red and green by >> 16 & 0xFF and >> 8 & 0xFF (which is something proposed on the reference for red()) solved the problem! I don’t understand what was the issue in the code I first wrote but here I have my correct results.
Oh thanks, I had forgotten about that… 
And wow, I actually tested out the color / int thing and it just works: you can replace color by int, well at least in my case. That is very interesting!
2 Likes