Jackyzgood
Messages postés26Date d'inscriptionmercredi 17 septembre 2008StatutMembreDernière intervention 6 mars 2010
-
24 mai 2009 à 12:51
uaip
Messages postés1466Date d'inscriptionmardi 20 février 2007StatutMembreDernière intervention 7 février 2011
-
25 mai 2009 à 18:20
Bonjour à tous !
J'essaye de faire une petit programme qui me permettrais de découper facilement des sprites, pour cela, je crée dans un premier temps un découpage par défaut que je modifie en fonction de l'image qui apparait à l'écran puis je sauvegarde les coordonnées dans un fichier texte a la fermeture du programme.
Je vais vous donner un exemple :
le découpage par défaut est le suivant :
coordonnées X,Y puis hauteur, largeur
0 0 100 100 la coordonnée Y est a 0 (normale c'est la première ligne)
100 0 100 100
200 0 100 100
300 0 100 100
400 0 100 100
500 0 100 100
600 0 100 100
700 0 100 100
800 0 100 100
900 0 100 100 (fin de la première ligne)
0 100 100 100 (début de la 2eme)
100 100 100 100
Jusque la pas de soucis mon programme affiche correctement les images et les découpages. Cependant a la fermeture du programme je retrouve ceci dans mon fichier :
uaip
Messages postés1466Date d'inscriptionmardi 20 février 2007StatutMembreDernière intervention 7 février 2011 24 mai 2009 à 13:49
Salut,
Il ne manquerait pas un \n à la fin u fscanf ? (quoi que non, tu n'as pas eu de soucis pour récrire dans 'fichier')
Sinon, tu fais uoi de tes variables entre temps ? Si tu appelles tes 2 boucles l'une juste après l'autre, tu as quoi ?
(Au passage, %d suffit).
Jackyzgood
Messages postés26Date d'inscriptionmercredi 17 septembre 2008StatutMembreDernière intervention 6 mars 2010 24 mai 2009 à 14:04
Dans le programme initial entre les 2 boucles je modifie les coordonnées, donc les clip[ i ][ j ].x, clip[ i ][ j ].y, clip[ i ][ j ].w, clip[ i ][ j ].h avec :
case SDL_KEYDOWN :
switch(event.key.keysym.sym)
{
case SDLK_RIGHT :
clip[ (*positionMarqueur).x ][ (*positionMarqueur).y ].x ++;
SDL_Delay(50);
break;
C'est pas le code complet mais ce n'est pas ça qui pose problème, car j'ai recommencé mon programme depuis le début pour voir ou était l'erreur et j'ai commencé par le bout de code de mon premier message, et déjà la ça bloque. Donc pour l'instant c'est juste un test de lecture et d'écriture dans un fichier, mais le plus perturbant c'est qu'a partir de la 2eme ligne tout se passe bien. Je suppose donc que ça doit être mes boucles qui doivent être mal écrite mais je ne vois pas du tout ou....
Pour le fscanf je n'ai pas mis de \n parce que de toute façon une fois arrivé a la fin de la ligne il part sur le début de la suivante.
uaip
Messages postés1466Date d'inscriptionmardi 20 février 2007StatutMembreDernière intervention 7 février 2011 25 mai 2009 à 18:20
Dans mon 1er post, je voulais te demander si SDL_Rect initialisait bien ton tableau, mais finalement, c'était sans pas pas important, vu que tu remplis chaque case.
Ta variable "tableau" est de type entier, sans doute qu'il caste automatiquement dans le scanf. Je ne connais pas le type de SDL_Rect.
Mes recherches vont être stoppées par mon mal de crâne, désolé.