2013-06-06 2 views
0

Я хочу проверить, красный ли пиксель на экране или нет. Я использую allegro 5. Вот мой кодПроверка цвета пикселя Allegro 5 C++

ALLEGRO_BITMAP *bitmap ; 
int x , y; 

x=*xIter-20; 
y=*yIter; 

ALLEGRO_COLOR red_color = al_map_rgb (255,0,0); 
ALLEGRO_COLOR new_color = al_get_pixel (bitmap , x , y); 

if(new_color==red_color) 
    return 1; 

Но он сообщает об ошибке sytnax

ошибка C2678: бинарный «==»: ни один оператор не найден, который занимает левую операнд типа «ALLEGRO_COLOR» (или нет приемлемой преобразования)

+0

Похоже, что это не реализовано. Посмотрите на этот ответ http://stackoverflow.com/a/7406353/516138 – Nick

+0

Может ли это [https://www.allegro.cc/forums/thread/607895] помочь? – soon

ответ

1
unsigned char r,g,b; 
al_unmap_rgb(new_color, &r, &g, &b); 

bool isColorRed = (r == 255 && g == 0 && b == 0); 
+0

Спасибо очень много –

0

существует не оператор == для ALLEGRO_COLOR типа, вы должны сами.

+2

Возможно, вам стоит показать, как это сделать. –