J'ai installé la SDL et rencontré quelques problèmes.
Le problème majeur que j'ai rencontré, est la gestion des touches nombres (pas de clavier numérique) sur un ordinateur portable (les numéro au dessus des lettres).
sur windows j'utilisais la touche 4 ('), 5 ((), 7(è), 8(!)
mais sur linux, la gestion de ces touches ne fonctionnent pas...
J'ai vu qu'il fallait utiliser le caractère unicode, mais je ne sais pas comment le mettre en place en utilisant la fonction SDl_Keyssates pour gerer mes touches (je ne veux pas changer ce mode de gestion).
Auriez vous des idées sur la facon de proceder pour rendre ces touches compatibles ?
voilà la partie du code :
- Code: Tout sélectionner
Uint8 *keystates = SDL_GetKeyState( NULL );
while (continuer)
{
while(SDL_PollEvent(&event));
{
if (keystates[ SDLK_b ]){
activepiano = 1;
activeclavier = 0;
}
if (keystates[ SDLK_n ]){
activepiano = 0;
activeclavier = 1;
}
if (keystates[ SDLK_k ]){
continuer = 0;
}
if (keystates[ SDLK_h] && aide){
aide = 0;
}
else if (keystates[ SDLK_h ] && aide == 0){
aide =1;
}
if (keystates[ SDLK_e ] && activepiano)
{
positiondo.y = 25;
Mix_PlayChannel(0, sondo, 0);
}
if (keystates[SDLK_4] && activepiano){
positiondiez.y = 25;
Mix_PlayChannel(1, sondiez, 0);
}
j'ai essayé de trouver la correspondance (SDLK_QUOTE) avec le code suivant :
- Code: Tout sélectionner
if (keystates[SDLK_4] && activepiano || keystates[SDLK_QUOTE] && activepiano){
positiondiez.y = 25;
Mix_PlayChannel(1, sondiez, 0);
}
Mais lorsque que je compile (Linux) et que j'execute, des que j'appui sur la touche ', j'ai un Segmentation Fault.
Savez vous pourquoi ?