Implimenter Un Menu En C Avec Allegro - C - Programmation
Marsh Posté le 17-04-2013 à 11:23:33
Bonjour,
On ne connait ni tes valeurs de choix de menus, ni combien il y en a.
Es-tu new à la programmation en C?
Si oui, ne commence certainement pas par là.
Sinon, on ne voit pas l'intégralité de ton code. On ne voit pas l'initialisation de la var "continuer" ni ce que représente le tableau key[].
A mon avis, si tu mets un tableau de key comme ceci :
key[0] = 21;
key[1] = 42;
Ton KEY_DOWN est égal à 0 et donc ton KEY_UP à 1. (supposition)
(imaginons que les touches 21 et 42 sont les touches bas et haut)...
Dans le premier if, ca équivaudra à :
if ( 21 )
{
i++;
menu=(i-1)%3;
}
else if ( 42 )
{
i--;
menu = (i-1)%3;
}
Dans tous les cas, il rentrera forcément dans le 1er if, et pas dans le second.
Puisque tu demandes à ton ordi "Est-ce que 21 est différent de 0 ?" il te répond "Bah oui !" donc il rentre dans c'te condition.
Si tu vas tout le temps vers le bas, c'est donc normal, et je te conseille de faire une sorte de "keypressed = getch();" (en SDL je sais pas à quoi ça équivaut) et de vérifier la valeur de keypressed (c'est un int).
Marsh Posté le 17-04-2013 à 19:10:55
Sauf que si c'est comme la SDL, chaque case correspond à la clef et renvoi l'état (appuyé/pas appuyé).
Sinon, tu as pas mis assez de code, on a aucune idée de ce qui se passe derrière, de plus tu recréer tout le temps ton buffer ce qui me semble bizarre et pour finir, tu dis pas ce qui ne marche pas
Marsh Posté le 19-04-2013 à 00:17:15
Je parlais par KEY_DOWN et KEY_UP la fleche du haut et flèche du bas...
Sinon je n'ai pas comris ton problème, donc exprime toi mieux..
Marsh Posté le 19-04-2013 à 00:47:12
Non je suis pas débutant en c mais j'ai pas trouvé la solution pour implimenter un menu en c avec la bibliothéque ALLEGRO et non pas avec SDL , ce que je me demande c'est que j'ai 3 images (jouer/option/quitter) , la 1 ère correspond à menu 1 (jouer) et lorsque je clique sur la touche bas elle m'affiche la 2 eme image (option ) et finalement lorsque je clique encore sur la touche bas elle m'affiche la 3 eme image (quitter )
Marsh Posté le 07-05-2013 à 15:36:49
ala99 a écrit : Non je suis pas débutant en c mais j'ai pas trouvé la solution pour implimenter un menu en c avec la bibliothéque ALLEGRO et non pas avec SDL , ce que je me demande c'est que j'ai 3 images (jouer/option/quitter) , la 1 ère correspond à menu 1 (jouer) et lorsque je clique sur la touche bas elle m'affiche la 2 eme image (option ) et finalement lorsque je clique encore sur la touche bas elle m'affiche la 3 eme image (quitter ) |
Avec Allegro, tu as deux possibilités
Afficher une image du menu (ou du texte) et gérer le clic avec la souris
Afficher une image du menu (ou du texte) et gérer le clavier
En général ça se passe comme ça pour le clavier
Code :
|
avec la souris, un truc du genre
Code :
|
Marsh Posté le 13-04-2013 à 15:39:55
S'il vous plait quelqu'un peut m'aider à implimenter un menu du jeu en c j'ai essayé avec ce code mais ça marche pas
int i=0;
int menu=0;
while(continuer!=0)
{
clear_bitmap(Buffer);
if( key[KEY_DOWN] )
{
i++;
menu=(i-1)%3;
}
else if( key[KEY_UP] )
{
i--;
menu=(i-1)%3;
}
Buffer = create_bitmap(800, 480);
blit(img[menu], Buffer, 0, 0, 0, 0, img[menu]->w, img[menu]->h);
blit(Buffer, screen, 0, 0, 0, 0, SCREEN_W, SCREEN_H);
}