Se connecter / S'enregistrer
Votre question

[Résolu] [C: SDL] Boucle de SDL_BlitSurface

Tags :
  • Programme
  • Programmation
Dernière réponse : dans Programmation
23 Juin 2008 16:00:52

Bonjour, j'ai un probleme avec la fonction SDL_BlitSurface, elle renvoie -1 et plante le programme
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. #include <SDL/SDL.h>
  4. #include <SDL/SDL_image.h>
  5.  
  6. /*Ce fichier doit creer les "décors" avant de les envoyer vers la suite du programme */
  7. SDL_Surface *lvlLoader(SDL_Surface *ecran){ //ecran a été cré dans la fonction main
  8.  
  9. SDL_Rect positionDecors;
  10. positionDecors.x = 1024/2 - 200; //pour centrer l'image
  11. positionDecors.y = 768/2 - 200;
  12.  
  13. SDL_Surface *decor = NULL;
  14.  
  15. SDL_Init( SDL_INIT_VIDEO);
  16. decor = SDL_LoadBMP("sprites/decors.bmp");
  17. fprintf(stderr, "lvlLoader: %d\n", SDL_BlitSurface(decor, NULL, ecran, &positionDecors)); //probleme: la valeur est -1 pourquoi ?
  18. SDL_Flip(ecran);
  19. jeux(ecran); //on envoie l'"ecran" a la prochaine foncion qui va creer le peronnage et se déplacement
  20.  
  21. SDL_Quit();
  22. }


Si vous trouvez pourquoi, vous pouvez m'expliquer.
(J'ai pas envie d'un SEUL fichier qui ait 900 lignes !!)
Merci

Autres pages sur : resolu sdl boucle sdl blitsurface

a b L Programmation
23 Juin 2008 20:22:55

decor est à NULL?
Si oui, ton fichier est mal référencé.
23 Juin 2008 20:25:57

OK, mais, en fait c'est pas si important.
La question que je me pose c'est si on peut utiliser 1 seule surface pour bliter plusieur fois (pour la mettre dans une boucle).
Merci
a b L Programmation
23 Juin 2008 22:00:47

Oui et heureusement :) 
Il y a du double-buffering, c'est-à-dire que "ecran", ce n'est pas vraiment l'écran, mais un buffer. C'est quand tu fais SDL_Flip() que tu affiches à l'écran, ça évite les clignotements de sprites semi-transparent :) 
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS