Emmanuel Delahaye C is a sharp tool | kiooik a écrit :
voila je veux créer un petit jeux en langage c
j'ai fait un menu déroulant, des fonctions,...
Le programme se compile bien et quand je lance mon programme, le menu déroulant apparait mais rien d'autre ne se fait... vous pouvez voir le code source du programme http://home.scarlet.be/kio/ici
|
- main() retourne int. Toujours...
- Pour le reste, tu utilises des fonctions de la version originale de Borland C qui ne sont pas supportées par le portage de conio pour MinGW. (window(), par exemple) que je ne peux donc pas tester. C'est le problème avec le code non portable...
OK, j'ai vu que l'impact de window() était faible, et je l'ignore.
J'ai donc compilé et lancé ton code. (Code::Blocks avec libconio.a et <conio2.h> )
Le menu déroulant fonctionne, mais effectivement, on ne peut pas sélectionner... Le problème semble venir de menuprincipal()...
Visiblement, tu ne sais pas lire les données du clavier... Evidemment, ça ne s'invente pas... Il faut lire la doc... http://www.developpez.net/forums/s [...] p?t=131260
Ceci fonctionne :
Code :
- #define CR 0x0D
- #define TAB 0x09
- <...>
- static int menuprincipal(void)
- {
- char menu[4][25] =
- {
- "1: Commencer",
- "2: Ajouter des questions",
- "3: Highscore",
- "4: Quitter"
- };
- int level = 1, i;
- int key ;
- gotoxy(12, 6);
- cprintf("<=MENU=>" );
- textcolor(YELLOW);
- do
- {
- for (i = 1; i <= 4; i++)
- {
- if (level == i) //teste si le compteur est = au menu selectionn,
- textbackground(CYAN); //selection
- else
- textbackground(BLUE); //normal
- gotoxy(3, i + 1);
- cprintf("%s", menu[i - 1]);
- }
- key = getch();
- printf("key=%d\n", key);
- if (key == 0 ||key == 224)
- {
- if (kbhit())
- {
- key = getch();
- switch (key)
- {
- case KEY_DOWN:
- level++;
- if (level > 4) //si on depace
- {
- level = 1; //la tranche de valeur
- }
- break;
- case KEY_UP:
- level--;
- if (level < 1) //autorisee pour le menu
- {
- level = 4;
- }
- break;
- }
- }
- }
- }
- while (key != CR && key != TAB); ////fin do tant que l'on appuie pas sur ENTER ou TAB
- return level;
- }
|
---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
|