tres).
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 ?
Edit : voilà la partie du code :
j'ai essayé de trouver la correspondance (SDLK_QUOTE) avec le code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 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); }
Mais lorsque que je compile (Linux) et que j'execute, des que j'appui sur la touche ', j'ai un Segmentation Fault.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 if (keystates[SDLK_4] && activepiano || keystates[SDLK_QUOTE] && activepiano){ positiondiez.y = 25; Mix_PlayChannel(1, sondiez, 0); }
Savez vous pourquoi ?
Partager