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):
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.
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;
Je ne comprends pas d'où viennent ces valeurs aberrantes sinon que ma fonction getCenterX() ou Y est la suivante :
_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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 int Sprite::getCenterX() { return int(_rect.x + (_clip.w/2)); }
Comment puis-je convertir ces types sans aberrations ?
Partager