begin process at 2010 02 10 13:29:35
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Gros soucis SDL ...... argh


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Gros soucis SDL ...... argh

vendredi 2 décembre 2005 à 21:12:42 | Gros soucis SDL ...... argh

courjete

Alors voila, je me met à la programmation en c++ et dans une volonté de tester mes connaissances, préparer des fonctions d'affichage, je cherche à faire un programme tout simple qui me permet de déplacer un cadre sur un image. Je travaille sous SDL, mon programme réussit à faire déplacer le cadre de gauche à droite et de haut en bas mais la touche que j'ai configurer pour quitter ne fonctionne pas Ce qui est plutot embetant ;-)
En fait n'importe quelle touche reproduit le comportement de ma touche pour quitter (échap) et elle ne quitte pas, elle fait déplacer mon cadre un peu aléatoirement et quitte après de nombreux déplacements.
Voici ma fonction :

int touchesdir () {
    while (1) {
           while (SDL_PollEvent(&event)) {
                 if (event.type == SDL_KEYDOWN) {
                                switch (event.key.keysym.sym) {
                                      
                                       case SDLK_UP:     m-=20;
                                                         posimod (m,n);
                                       case SDLK_DOWN:   m+=20;
                                                         posimod (m,n);
                                       case SDLK_RIGHT:  n+=20;
                                                         posimod (m,n);
                                       case SDLK_LEFT:   n-=20;
                                                         posimod (m,n);
                                       case SDLK_ESCAPE: break;
                                       }
                                return 0;
                                }
                 }
           }
          
     }

sachant que posimod est une fonction qui modifie la position de mon cadre en relançant cette fonction     (touchesdir) après modification de la position.
Aidez moi s'il vous plait....

courjete
vendredi 2 décembre 2005 à 21:34:23 | Re : Gros soucis SDL ...... argh

vecchio56

Administrateur CodeS-SourceS
Tu n'aurais pas oublié quelques break par hasard? Et ton case SDLK_ESCAPE: ne semble pas faire grand chose...
samedi 3 décembre 2005 à 23:59:40 | Re : Gros soucis SDL ...... argh

The_Sin

Réponse acceptée !
Salut,
Quand tu quittes ta fonction et que tu reviens à main, tu as bien des SDL_Quit ;  ? ... parce que sinon c'est normal que ça ne quitte pas correctement.

...
case SDLK_ESCAPE: Quit() ;
...

void Quit()
{
    SDL_FreeSurface(sEcran) ;
    SDL_FreeSurface(sTonCadre) ;
    SDL_Quit() ;
    exit(0) ;
}

voilà fait appel à une fonction qui s'occupe de tout quitter parce que comme le dit vecchio56 ton SDLK_ESCAPE ne fait pas vraiment grand chose.

dimanche 4 décembre 2005 à 11:42:21 | Re : Gros soucis SDL ...... argh

courjete

alors alors, je n'ai pas mis de break car comme je lançais une fonction ,je me suis dis que ça n'etai pas utile mais je vais essayer. Par contre, pour ce qui est de mettre une fonction qui quitte la SDL  après SDL_ESCAPE, j'y ai pensé et je l'ai fais.... Gros probleme, ça quitte la SDL, mais pas le programme .....lol
Donc c'ets pas top. Mais c'ets vrai que les break, j'y avais pas pensé, je pense que ça pourrai m'aider. merci

courjete
dimanche 4 décembre 2005 à 11:46:20 | Re : Gros soucis SDL ...... argh

The_Sin

Re,
ça quitte la SDL, mais pas le programme .....  >>> comment ça
t'as bien mis exit(0) ; ?
dimanche 4 décembre 2005 à 12:06:34 | Re : Gros soucis SDL ...... argh

courjete

non, effectivement, j'ai jamais mis exit (0).
Et ça fonctionne. merci bocou, mon dernier souci est que n'importe quelle touche quitte le programme à part les touches directionnelles.
courjete
dimanche 4 décembre 2005 à 12:09:13 | Re : Gros soucis SDL ...... argh

vecchio56

Administrateur CodeS-SourceS
"alors alors, je n'ai pas mis de break car comme je lançais une fonction ,je me suis dis que ça n'etai pas utile" Aucun rapport
dimanche 4 décembre 2005 à 12:20:08 | Re : Gros soucis SDL ...... argh

courjete

ok, merci bien, par contre, j'avais bien SDL_Quit dans mon main, j'avais pas vu la question, mais normalement ça devrait quitter sans la jolie fonction Quit que m'a offert The_sin. Enfin bon ,ça fonctionne mieu et ça n'ets qu'un essai de programme pour que je me familiarise avec la SDL.

courjete
dimanche 4 décembre 2005 à 13:43:20 | Re : Gros soucis SDL ...... argh

The_Sin

Tu fais directement exit() ; sans liberer les surfaces et quitter la sdl ? Moi je te conseille dans tes progs sdl de faire un fonction Init() et une autre Quit(), comme ça dès que tu as besoin de quitter tu fais appel à Quit() ; .

Un exemple ( en C ) :

SDL_Surface *sEcran ;

void Quit()
{
   SDL_FreeSurface(sEcran) ;
   SDL_Quit() ;
   exit(0) ;
}

void Init()
{
   //Initialisation de SDL video et de l'écran
   if(SDL_Init(SDL_INIT_VIDEO) > 0)
      { printf("Impossible d'initialiser SDL : %s\n", SDL_GetError()) ;
        Quit() ;
      }
   if(!(sEcran = SDL_SetVideoMode(800, 600, 32, SDL_HWSURFACE | SDL_DOUBLEBUF)))
      { printf("Impossible de paramétrer le mode video : %s\n", SDL_GetError()) ;
        Quit() ;
      }
}

voilà++



Cette discussion est classée dans : case, cadre, sdl, sdlk, posimod


Répondre à ce message

Sujets en rapport avec ce message

GESTION CLAVIER SDL [ par Batman60 ] voici un bout de code qui  sert à me déplacer dans une scène 3D opengl ,le problème c'est qu'il faut à chaque fois appuyer sur la touche pour ce dépla utilisation de la souris pour un menu avec des cadres [ par MAF5582 ] /*salutj'aimerais 1-integrer une souris pour ce menu (actionner la fonction correspondante en cliqaunt sur le cadre)Est ce que quelquin peut me fourni Problème de gestion de clavier avec SDL [ par vincemail ] Bonjour, j'utilise SDL pour gérer le clavier : les flèches directionnelles doivent déplacer un personnage à l'écran. Mon problème est qu'il faut relac BUG SDL et CLAVIER ??? HELP! [ par broks ] Voici Mon code, il est un peu lourd c normal je débute en SDL, mais des ke mon probleme sera resolu, j'allegerai tout ca bien sûr:#include #include #i SDL porbleme [ par fahdovski ] IL Y'A EXECUTION MAIS LE PC PLANTE IL DEVIENT TRES LENT, MAIS POURQUOI??????jE TRAVAILLE SUR CODE::BLOCKS SOUS LINUXAVANT CA MARCHAIS IMPEC QUESQUI C' SDL [ par lushkah ] bjr, j'ai un pb avec la SDL  en C, je débutes et j'ai passer la nuit a essayer de faire une disparition en fondu, j'essayes de programmer un jeu de da Configuration souris SDL [ par darkane78 ] Bonjour,J'aimerais bien réalisé un jeu de dame, seulement je suis bloqué au niveau du configuration de la souris.Je voudrais pouvoir cliquer sur un pi pour que mes touches soient détectées immédiatement [ par snake57 ] Bonjour,j'ai un petit soucis avec la détection de touche. Je vous met le bout de code concerné plus bas pour que vous ayez une idée.Enfait je détecte Deplacement de plusieurs sprites à l'écran (SDL) [ par rasolofomanana ] Bonjour à tous, je débute en C et j'essaie de créer un programme où l'on peut déplacer plusieurs sprites à l'écran, par cases de 40px. Le problème es


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,624 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales