Problème avec glReadPixels
Salut,
Débutant en OpenGL, j'essaye de réaliser un jeux de serpend tout bete. Le problème c'est que je bloque sur la détection de collision où j'utilise glReadPixels mais qui ne marche pas. :cry: :cry: :cry:
Pour le serpend, j'utilise le conteneur deque ou je stocke les coordonnées X,Y de chaque bout de queue (1bout de queue = 1pixel/1).
Voici une partie du code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| 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 : //déplacement vers le haut
X = 0.0f; Y = +0.04f;
break;
case 2 : //déplacement vers le bas
X = 0.0f; Y = -0.04f;
break;
case 3 : //déplacement vers la gauche
X = -0.04f; Y = 0.0f;
break;
case 4 : //déplacement vers la droite
X = +0.04f; Y = 0.0f;
break;
}
//pour détecter une collision (collision si pixel blanc)
float tab[1];
glReadPixels(*it + X, *(it+1) + Y, 1, 1, GL_RGB, GL_UNSIGNED_BYTE, tab);
if (tab[0] == 1.0f){return 1;}
//pour déplacer la queue
Nibble.pop_back();
Nibble.pop_back();
Nibble.push_front(*(it+1) + Y);
Nibble.push_front(*it + X);
return 0;
} |
Merci d'avance.