dans ma console, couplé à sdl pour sdl_net, j'ai ma zolie boucle infinie et je veux qu'en cliquant sur une touche elle s'arrete, mais comme un con j'ai essayé ce code :
while(1)
{
keys = SDL_GetKeyState(NULL); // fonction normale
if(keys[SDLK_ESCAPE]) // touche échap
{
// code quand j'appuye
}
}
mais j'ai l'impression que ça veut pas marcher, il rentre jamais dans mon if :x
donc comment mettre ça en place (avec le clavier sdl ou pas, sans foutre une autre lib si possible^^) :():
__________________________
Spirit - modérateur casu ^-^'
Je n'ai jamais utilisé ni SDL, ni Allegro...
Mais ce que j'ai remarqué dans certain articles, c'est qu'il faut initialiser le clavier avec la fonction adéquate, des fonctions genre ...InitKeyboard, avant de pouvoir utiliser les événements de cette lib concernant le clavier.
Bonne Chance
__________________________
L'une des fonctions principales d'un ami consiste à subir, sous une forme plus douce et symbolique, les châtiments que nous désirerions, sans le pouvoir, infliger à nos ennemis. Aldous Huxley
Le meilleur des mondes
1 - En général on préfère un while(done!=true) car en sortant du while tu fais toutes les désallocations nécessaires toussa toussa au lieu de tout recopier dans ton if.
2 - Tu vérifies que keys n'est pas vide, cad problème de transmission au niveau du clavier?
__________________________
Be C++ Mon Blog (C++, Intelligence Artificielle, Prolog)
Ben j'attendais ta réponse sur keys ...
T'as essayé d'afficher keys[SDLK_ESCAPE] pour voir ce qu'il contient ?
Pour voir si en effet c'est à 1(je crois que c'est du 0|1 ce tableau)
__________________________
Be C++ Mon Blog (C++, Intelligence Artificielle, Prolog)
en fait j'ai fait un test for allant de SDLK_FIRST à SDLK_LAST, et dès que key[i] (les sdlk vont de 0 à xxx) alors j'affichais un truc à l'écran, mais rien ne s'est affiché donc key n'a jamais la valeur d'une quelconque clé :():
et key[SDLK_ESCAPE] ne m'affiche rien non plus
__________________________
Spirit - modérateur casu ^-^'
Hmmm ...
*consulte le wiki de la sdl*
http://www.libsdl.org/cgi/docwiki.cgi/SDL_5fGetKeyState?action=highlight&value=SDL_GetKeyState
D'après ça, c'est bon ...
Mais il passe peut-être la boucle trop vite ... enfin ça m'étonnerait. Dans tout les cas c'est de cette fonction que vient le problème.
enfin:
[quote]Note: Use SDL_PumpEvents to update the state array.
Note: This function gives you the current state after all events have been processed, so if a key or button has been pressed and released before you process events, then the pressed state will never show up in the getstate calls.
Note: This function doesn't take into account whether shift has been pressed or not. [/quote]
__________________________
Be C++
[url=http://blog.mestan.fr/]Mon Blog (C++, Intelligence Artificielle, Prolog)[/url]
ERREUR BBCODE SUR CE MESSAGE : - La valeur de la balise "quote" n'est pas correcte !
[quote]Note: You can only call this function in the thread that set the video mode[/quote]
c'est ce que je me demandais, je me demande si finalement les events sdl ne sont pas uniquement ceux qui ont lieux sur une fenêtre créée avec la sdl (et donc pas de console) :():
__________________________
Spirit - modérateur casu ^-^'
ERREUR BBCODE SUR CE MESSAGE : - La valeur de la balise "quote" n'est pas correcte !