J'utilise un fichier de configuration ( Config.tfc ) que mon programme lit pour y récupérer une série de chiffres : ces chiffres sont sensés remplacer les SDLK_UP et autres mots clé qui désignent les touches du clavier ( par exemple, le SDLK_ESCAPE vaut 27, si si essayez ).
Ensuite, je stoque les chiffres dans une classe ( keystates ) et je remplace les SDLK dans le switch de la boucle qui gère les évènements par les variables qui contiennent les nombres sus nommés.
Le seul probleme c'est que je ne peux pas intégrer dans un switch des variables... Comment faire ?
Config.cpp
Config.h
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 int EtablirConfiguration() { Keystates KEY; FILE* fichier = NULL; fichier = fopen("Config.tfc", "r"); if (fichier != NULL) { fscanf(fichier, "%ld-%ld-%ld-%ld-%ld-%ld-%ld-%ld-%ld-%ld-%ld-%ld-%ld-%ld", &KEY.MarcherAvant, &KEY.MarcherArriere,&KEY.MarcherGauche, &KEY.MarcherDroite, &KEY.Acheter, &KEY.Tirer, &KEY.Recharger, &KEY.Arme01, &KEY.Arme02, &KEY.Arme03, &KEY.Arme04, &KEY.Quitter, &KEY.InfoMap, &KEY.Fullscreen); fclose(fichier); } if(fichier == NULL) { MessageBox(0,"Impossible d'ouvrir Config.tfc",NULL,0); return 1; } return 0; }
Ce que je veux faire:
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 #ifndef DEF_CONFIG #define DEF_CONFIG class Keystates { public: int MarcherAvant, MarcherArriere, MarcherGauche, MarcherDroite; int Acheter, Tirer, Recharger, Arme01, Arme02, Arme03, Arme04; int Quitter, InfoMap; int Fullscreen; }; int EtablirConfiguration(); #endif
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 void Player::handle_input() { Keystates KEY; if( event.type == SDL_KEYDOWN ) { switch( event.key.keysym.sym ) { case KEY.Quitter: free_support(); break; /* C'est ici que ça bloque */ } } }
Partager