История изменений
Исправление linuhs_user, (текущая версия) :
Но этот вариант подходит только наверное для 2d графики
Для выделения 3D объектов можно написать такое... Рисуем разными цветами 3д объекты, смотрим какой цвет под мышкой и сверяем...
Entity_t ent[ENT_MAX];
int GetSelectedEntity(int x, int y) {
glClear();
glClearColor(Установи такой чтоб с id не пересекалось);
glEnableColor();
glDisableTextures();
for(int i = 0;i != ENT_MAX;i++) {
uint8_t* color = &i;
glColor3ub(color[3], color[2], color[1]);
DrawEntity(ent[i]);
}
Color_t cl = GetPixelOnScreenColor(x, y);
int ent_id = 0;
uint8_t* color = &ent_id;
color[3] = cl.red;
color[2] = cl.green;
color[1] = cl.blue;
glEnableTextures();
glDisableColors();
return(ent_id);
}
Исправление linuhs_user, :
Но этот вариант подходит только наверное для 2d графики
Для выделения 3D объектов можно написать такое... Рисуем разными цветами 3д объекты, смотрим какой цвет под мышкой и сверяем...
Entity_t ent[ENT_MAX];
int GetSelectedEntity(int x, int y) {
glClear();
glClearColor(Установи такой чтоб с id не пересекалось);
glEnableColor();
glDisableTextures();
for(int i = 0;i != ENT_MAX;i++) {
uint8_t* color = &i;
glColor3ub(color[3], color[2], color[1]);
DrawEntity(ent[i]);
}
Color_t cl = GetPixelOnScreenColor(x, y);
int ent_id = 0;
uint8_t* color = &ent_id;
color[3] = cl.red;
color[2] = cl.green;
color[1] = cl.blue;
return(ent_id);
}
Исходная версия linuhs_user, :
Но этот вариант подходит только наверное для 2d графики
Для выделения 3D объектов можно написать такое... Рисуем разными цветами 3д объекты, смотрим какой цвет под мышкой и сверяем...
Entity_t ent[ENT_MAX];
int GetSelectedEntity(int x, int y) {
glClear();
glEnableColor();
glDisableTextures();
for(int i = 0;i != ENT_MAX;i++) {
uint8_t* color = &i;
glColor3ub(color[3], color[2], color[1]);
DrawEntity(ent[i]);
}
Color_t cl = GetPixelOnScreenColor(x, y);
int ent_id = 0;
uint8_t* color = &ent_id;
color[3] = cl.red;
color[2] = cl.green;
color[1] = cl.blue;
return(ent_id);
}