Correspondance touches SDL

Le tutoriel en ligne vous pose quelques problèmes ? C'est ici pour en parler !

Correspondance touches SDL

Messagede necromoine le 28 Mar 2011 18:53

Bonjour, je programmais sur windows avant et depuis quelques jours je suis passé sur Ubuntu.
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 ?
necromoine
Bébé Chocobo
Bébé Chocobo
 
Messages: 3
Inscription: 28 Mar 2011 18:49
Jeu(x) du moment: Zelda Minish Cap

Retourner vers Besoin d'aide en SDL ?

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 4 invités

cron