Je débute actuellement avec OpenGL et j'essaye de faire un jeux de serpend. Pour la collision avec les éléments du décord je veux utiliser glReadPixels, et lorsque il y a collision la fonction return 1 et le programme se quitte. Problème dés que je lance le programme, il quitte comme s'il y avait une collision mais je ne comprend pas pourquoi.
Voici la fonction :
bool moveNibble(deque<float> &Nibble, int direction)
{
deque<float>::iterator it;
it=Nibble.begin();
float X=0.0f,Y=0.0f;
switch(direction)
{
case 1 :
X = 0.0f; Y = +0.04f;
break;
case 2 :
X = 0.0f; Y = -0.04f;
break;
case 3 :
X = -0.04f; Y = 0.0f;
break;
case 4 :
X = +0.04f; Y = 0.0f;
break;
}
if(X != 0.0f || Y != 0.0f)
{
GLubyte tab[1][1][1];
glReadPixels(*it + X, *(it+1) + Y, 1, 1, GL_RGB, GL_UNSIGNED_BYTE, tab);
if (tab[0][0][0] != 0){return 1;}
}
Nibble.pop_back();
Nibble.pop_back();
Nibble.push_front(*(it+1) + Y);
Nibble.push_front(*it + X);
return 0;
}
Turok