# How to check for a color in an area

How can I check, if there is a specific color in an area?
Like:

``````If(color in area(10,100,50,600) == color(0,0,255)){
run code
}
``````
1 Like

Err, get(x,y) gives you one point

get with 4 parameters gives you a rectangle that you could loop over to check all points in it

If I use get with 4 parameters it says: Type mismatch,â€śprocessing.core.PImageâ€ť does not match with â€śintâ€ť

Yeah, using it with 4 parameters gives you an image (the section of the big image)

PImage section = get(â€¦); // 4 parameters

Look at loadPixels and pixels to see how to for loop over it to check single points

With a for loop its too slow. I want to create a PacMan game where it should get checked fast to stop the character if a blue pixel is x+24 pixels next to it.

When you know itâ€™s x+24 then use get with 2 parameters to get the color of this point

color testColor=get(x+24,y);

Test it against the color blue

can I also check if the color blue is in the area (x+24,y-24,x+24,y+24)?

Yes.

Theoretically

• if he goes left check left,
• when he goes right check right side.

so when you have the direction stored (`int dir=0` or 1 or 2â€¦ for north, east, south, west) make the check accordingly.

Otherwise you have to write in full length:

``````if( get(x+24,y) == BLUE ||
get(x-24,y) == BLUE ||
.... ) {
// reached a wall
}
``````

(|| means logical OR, && means logical AND)

This doesnâ€™t make much sense because it would nearly always give you that PacMan reached a wall. So he wouldnâ€™t be able to move anyway.

Instead, when you hit a cursor (or wasd keys) to make PacMan move, check only the direction for that key and allow the move or disallow move.

Chrisir

[EDITED]

1 Like

so is this the only way to set pixels?

``````loadPixels()
pixels[x+y*w] = color(255)
updatePixels()
``````

â€¦ or use `point()` command