Bonsoir,
j'ai fait un programme en C avec des boutons que j'active soit par clic dessus, soit par un appui clavier (touche A pour le bouton annuler, touche D pour le bouton dimension, ...). Certains boutons ne sont activable que par clic souris.
J'ai un bouton qui me permet de choisir la musique que je veux (choix parmi 6 titres), activable par clic seulement.
Alors que je testais le programme, avec la musique en cours, j'ai voulu augmenter le volume du son en utilisant le raccourci clavier Fn+F10 ou Fn+F11 ou Fn+F12.
Et là, je me suis aperçu que cela m'ouvrait les autres boutons de menu au lieu de modifier le volume du son.
La musique est activable que par clic souris (enfin je pense) dans case SDL_MOUSEBUTTONUP.
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52 switch(event.type) { case SDL_QUIT: //Si on a cliqué sur la croix ZoneEvenement=QUITTER; break; case SDL_KEYUP: //Si touche du clavier enfoncée switch (event.key.keysym.sym) //selon la touche enfoncée { case SDLK_ESCAPE: // Appui sur la touche Echap, on va arrêter le jeu case SDLK_a: // Appui sur la touche q (Attention a<->q avec les claviers qwerty-azerty), on va arrêter le jeu ZoneEvenement=QUITTER; break; case SDLK_q: // Appui sur la touche a (Attention a<->q avec les claviers qwerty-azerty), on va annuler le dernier coup ZoneEvenement=ANNULER; break; case SDLK_n: //si on presse le n de nouveau ZoneEvenement=NOUVEAU; break; case SDLK_c: // Appui sur la touche a (Attention a<->q avec les claviers qwerty-azerty), on va annuler le dernier coup ZoneEvenement=COUPDEPOUCE; break; case SDLK_t: //si on presse le t de Tournoi ZoneEvenement=TOURNOI; break; case SDLK_i: //si on presse le i de Instruction ZoneEvenement=INSTRUCTION; break; case SDLK_v: //si on presse le v de Valider case SDLK_RETURN: //si on presse Return ZoneEvenement=VALIDER; break; case SDLK_d: //si on presse le d de configDim ZoneEvenement=CONFIGDIMENSION; break; default : //sinon rien pour eviter message d'alerte lors de la compilation break; } break; case SDL_MOUSEMOTION: //Si souris déplacée positionSouris.x=event.motion.x; //position souris positionSouris.y=event.motion.y; ZoneEvenement=MARGE; break; case SDL_MOUSEBUTTONUP: //Si clic souris positionSouris.x=event.button.x; //position clic positionSouris.y=event.button.y; ZoneEvenement = QuelleZoneCliquee(positionSouris); break; default: //Sinon on ne fait rien break; }
Je suis sous win 10 et avec code block 16.01.
Du coup, j'ai plusieurs questions.
1. Est-ce que mon case SDL_KEYUP est défectueux car j'appuis sur 2 touches en même temps dont la touche Fn et qui ne serait pas pris en compte par mon default break ?
2. J'avais commencé le programme sur un Win 7 et je ne m'étais pas aperçu de ce problème. Sauf que mon ordi win 7 m'a lâché donc je suis passé sur win10 et je ne peux plus vérifier si le problème était déjà présent à ce moment. Pourrait ce être le win10 qui me crée cette erreur ?
3. J'ai vu qu'une version de code blocks20 était sortie. Ai-je intérêt à passer de la version 16 à la 20 ?
4. Si le son de mon ordi est coupé et que je décide de jouer la musique 1, je n'entends pas la musique. Y a t il une fonction qui permette d'activer automatiquement le son de l'ordi ?
Je remercie tout ceux qui voudront bien passer un peu de temps à me lire et qui pourraient me conseiller.
Cordialement
Ludo
Partager