hé oui encore moi qui ai un problème . Alors enfet je créé un programme mais je n'arrive pas a faire la transition entre la page d'acceuille ( menu ) et la page de jeu. Je ne morcelle pas le fichier volontairement ( donc pas la peine de me dire de le faire ) Je met le code
while(continuer) {
SDL_WaitEvent(&event); switch(event.type) { case SDL_QUIT:
continuer = 0; break; case SDL_KEYDOWN: switch(event.key.keysym.sym) { case SDLK_ESCAPE:
continuer = 0; break; case SDLK_KP3:
continuer = 0; break; case SDLK_KP1:
jouer; break;
} break; } }
void jouer(); {
Link = SDL_LoadBMP("linkdown.bmp");
}
SDL_FreeSurface(Menu);
SDL_Quit();
return EXIT_SUCCESS; }
A partir du moment ou la fontion void jouer intervient je voudrais que celle ci affiche l'image que je charge. Je sais qu'il manque du code pour que cela marche mais je ne vois vraiment pas quoi .
void jouer(); {
Link = SDL_LoadBMP("linkdown.bmp");
}
SDL_FreeSurface(Menu);
N'est pas normal
Ensuite, tu n'as pas fermé les accolades du main avant le début de jouer, tu as mis un point virgule après jouer().
Et le code pour blitter une image, c'est dans le cours ! (et dans ton main aussi )
Et un autre petit détail :
Essaie d'utiliser SDLK_1 plutot que SDLK_KP1, histoire qu'on ait pas à modifier les sources pour jouer sur un ordinateur portable...
/* Chargement d'une image Bitmap dans une surface */
Link = SDL_LoadBMP("linkdown.bmp"); /* On blitte par-dessus l'écran */
SDL_BlitSurface(Link, NULL, ecran, &positionFond);
SDL_Flip(ecran);
pause();
SDL_FreeSurface(Link); /* On libère la surface */
SDL_Quit();
Si si, il le faut.
Désolé te le dire, mais ton code est complètement bugué !
Va relire la strucuture de base d'un programme en SDL !
On dirait que ta fonction jouer() est dans la fonction main() ...
jouer() ne produira jamais l'effet attendu ! Tu dois reblitté l'image et recommencer avec ce fameux shéma que mateo a demande de connaître par coeur...
A oui, en effet la fonction jouer etait dans le main . Donc maintenant j'ai séparé ces deux fonctions je peux compiler sans erreur mais ca ne marche pas.. enfin si, ca marche l'ordi fait ce que je lui ai demander mais c'est pas le résultat que j'attend Je suis un peu perdu, je ne sais pas si je dois réécrire telle ou telle ligne parce qu'elle sont deja dans le main. Je met mon code comme je l'ai corriger pour le moment:
ET OUI moi aussi j' ai était pieger avec se code, voila le probleme il faut je pense que tu mette la boucle (WHILE) comme ça sa affichera la fenetre jusqu a que tu clique sur la croix
bon a+
Oui mais j'ai mis tout ca parce que je voulais que l'on puisse choisir entre plein ecran ou reduit mais le probleme maintenant c'est que j'ai beau retirer SDL_FULLSCREEN quand je lance le programme recompilé la fenetre est toujour en plein ecran...
Sinon l'effet voulu sa serai que lorsque l'on appuis sur SDLK_KP1 ( touche 1 du pad numerique ) la fonction jouer s'active et donc l'image Link s'affiche pour remplace l'image du menu... mais cela ne fonctionne pas.
/* Chargement d'une image Bitmap dans une surface */
Link = SDL_LoadBMP("linkdown.bmp"); /* On blitte par-dessus l'écran */
SDL_BlitSurface(Link, NULL, ecran, &positionFond);
SDL_Flip(ecran);
pause();
SDL_FreeSurface(Link); /* On libère la surface */
SDL_Quit();
}
Un écran sur la fonction, et un écran sur le main, non mais ça va pas la tête
void jouer(SDL_Surface* ecran) {
SDL_Surface Link = NULL;
SDL_Rect positionFond;
positionFond.x = 0;
positionFond.y = 0;
/* Chargement d'une image Bitmap dans une surface */
Link = SDL_LoadBMP("linkdown.bmp"); /* On blitte par-dessus l'écran */
SDL_BlitSurface(Link, NULL, ecran, &positionFond);
SDL_Flip(ecran);
pause();
SDL_FreeSurface(Link); /* On libère la surface */
SDL_Quit();
Ton code comporte plusieurs erreurs, et c'est tout a fait normal qu'il ne marche pas.
Je te conseille vivement de relire les cours de M@teo au sujet de la SDL.
Je n'avais pas vu ça, mais si tu était à côté de moi, je t'aurais mis une baffe bien chaude .
SDL_Surface* Link = NULL;
Edit :
jouer();
Grrrrrr
jouer(ecran);
probleme SDL
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Vérifier compte Google Analytics
Vérifier compte Google Analytics
Vérifier compte Google Analytics
Vérifier compte Google Analytics
Vérifier compte Google Analytics
Vérifier compte Google Analytics
Vérifier compte Google Analytics
Vérifier compte Google Analytics