courjete
Messages postés11Date d'inscriptionjeudi 10 avril 2003StatutMembreDernière intervention16 décembre 2005
-
2 déc. 2005 à 21:12
The_Sin
Messages postés43Date d'inscriptionsamedi 25 septembre 2004StatutMembreDernière intervention 4 février 2006
-
4 déc. 2005 à 13:43
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.
courjete
Messages postés11Date d'inscriptionjeudi 10 avril 2003StatutMembreDernière intervention16 décembre 2005 4 déc. 2005 à 11:42
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
Messages postés11Date d'inscriptionjeudi 10 avril 2003StatutMembreDernière intervention16 décembre 2005 4 déc. 2005 à 12:06
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
courjete
Messages postés11Date d'inscriptionjeudi 10 avril 2003StatutMembreDernière intervention16 décembre 2005 4 déc. 2005 à 12:20
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.
The_Sin
Messages postés43Date d'inscriptionsamedi 25 septembre 2004StatutMembreDernière intervention 4 février 2006 4 déc. 2005 à 13:43
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() ; .