Salut,

J'ai le problème suivant en réalisant un jeu avec SDL et OpenGL :

Voici mon code (sans les fprintf qui m'ont permis de déceler le problème):

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
int perx = perso->getCenterX();
int pery = perso->getCenterY();
 
Pas * pas = new Pas();
 
pas->x = (float)perx;
pas->y = (float)pery;
Lorsque je regarde la valeur de perx et pery après initialisation, j'obtiens 192 et 192 mais lorsque je les transforme en float ils deviennent 0 et 1080573952, ce qui bien entendu fausse tout mon programme.

Je ne comprends pas d'où viennent ces valeurs aberrantes sinon que ma fonction getCenterX() ou Y est la suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
int Sprite::getCenterX()
{
	return int(_rect.x + (_clip.w/2));
}
_rect et _clip étant des SDL_Rect dont les membres sont en Sint16... J'imagine que c'est là qu'a lieu le problème.

Comment puis-je convertir ces types sans aberrations ?