Partage
  • Partager sur Facebook
  • Partager sur Twitter

Un système de menu dans un jeu

Comment feriez-vous ?

    13 juin 2008 à 20:59:06

    Salut à tous !

    Mon problème peut être un peu vague, mais voici ce que je souhaite savoir.
    Lorsque j'ai fait mon premier jeu Pong avec la SFML, j'ai fait un système de menus en utilisant des booléens.
    Par exemple, pour le menu principal, je faisais un booléen menu, activé à true. Je mettais une condition toute simple dans la boucle principale :
    if(menu)
    {
       //du code...
    }
    
    else if(jouer)
    {
       //du code pour le jeu...
    }
    

    Et ensuite, lorsqu'on appuie sur la touche Entrée, on met le booléen menu à false et le booléen jouer à true pour que la partie du jeu s'affiche.

    Voilà je pense que vous avez compris ma méthode, mais je doute énormément qu'elle soit bonne (j'avais notamment un main de 600 lignes avec tous ces booléens o_O !)
    Et je voudrais donc savoir comment vous feriez de votre côté :) .
    Merci d'avance pour vos réponses !
    • Partager sur Facebook
    • Partager sur Twitter
      13 juin 2008 à 21:08:29

      Salut !
      Je recherche également un système plus court pour créer les menu tout comme toi parce que moi aussi je galère avec du code de 6km désoler de ne pas pouvoir te répondre :( .
      Donc si quelqu'un avait une solution sa serait top ^^ .
      • Partager sur Facebook
      • Partager sur Twitter
        13 juin 2008 à 21:20:19

        je sais pas si j'utilise la bonne méthode, mais moi je regroupe tout mon code main dans une classe et je fais une méthode qui en appelle d'autre avec par exemple la méthode run qui demande ce que veut faire l'utilisateur et ensuite ça appelle la méthode jouer ou option qui sont des méthodes de cette même classes

        ce qui me permet d'avoir uniquement le code relatif à l'endroit ou je suis
        • Partager sur Facebook
        • Partager sur Twitter
          13 juin 2008 à 21:27:14

          moi mon main contient souvent 3 ligne, on ne va pas s'entendre :p
          non je blague c'est époque est révolue (c'est a l'époque ou je fesait une classe game qui gérait out et je fesait
          main()
          {
          Game partie;
          partie->game();
          
          // et c'est tout  
          }
          

          )

          bon revenons en au sujet initial:
          tu crée une classe menu et une classe jeu, chacune fait ces test a elle , on s'en occupe pas ^^
          ensuite dans ton main tu utilise les deux classes (ton main ce retrouve avec 6/7 ligne, donc apres sa te laisse de quoi commenter ^^)

          et sinon tu veux créer un menu sur ton jeu ou ameliorer le systeme ?
          • Partager sur Facebook
          • Partager sur Twitter
            13 juin 2008 à 21:47:14

            Citation : danman

            et sinon tu veux créer un menu sur ton jeu ou ameliorer le systeme ?


            Non non, je veux juste savoir quelle est la méthode à utiliser.
            En tout cas, merci pour ta réponse :) .

            Sinon, y a-t-il d'autres idées ?
            • Partager sur Facebook
            • Partager sur Twitter
              13 juin 2008 à 22:12:15

              Personnellement, j'ai fait une classe Menu et une fonction jeu(). J'ai donc ma boucle principale qui contient quelque chose comme :
              switch(MonMenu.GetChoice())
              {
                case AUCUN:
                  MonMenu.Update(); // Ici j'actualise d'après les événements
                  MonMenu.Display(); // Ici j'affiche les différents sprites
                  break;
              
                case JEU:
                  jeu();
                  break;  
              }
              


              Donc MonMenu est une instance de ma classe Menu, AUCUN et JEU sont déclarés avec des define.
              Quant aux méthodes Update et Display, dans mon vrai code je passe des arguments (dont une référence vers la fenêtre). Ces méthodes ne contiennent pas de boucle (et la fonction jeu() non plus) : il y a une seule boucle principale qui est dans le main.

              Après je te laisse imaginer le reste (Là j'ai pas mes codes avec moi)

              Je ne sais pas si c'est une bonne méthode... Pour la fonction jeu en vrai je n'ai pas encore fait dans mon projet, et j'hésite un peu entre utiliser une classe Jeu ou une fonction... Je préférerais utiliser une classe mais avec mon code, je ne saurais pas trop où déclarer mon instance...
              • Partager sur Facebook
              • Partager sur Twitter
                13 juin 2008 à 23:22:15

                Il me semble qu'il y'a un projet pour faire un GUI sous openGL...
                • Partager sur Facebook
                • Partager sur Twitter
                  14 juin 2008 à 12:53:37

                  Citation : Groovy

                  Personnellement, j'ai fait une classe Menu et une fonction jeu(). J'ai donc ma boucle principale qui contient quelque chose comme :

                  switch(MonMenu.GetChoice())
                  {
                    case AUCUN:
                      MonMenu.Update(); // Ici j'actualise d'après les événements
                      MonMenu.Display(); // Ici j'affiche les différents sprites
                      break;
                  
                    case JEU:
                      jeu();
                      break;  
                  }
                  



                  Donc MonMenu est une instance de ma classe Menu, AUCUN et JEU sont déclarés avec des define.
                  Quant aux méthodes Update et Display, dans mon vrai code je passe des arguments (dont une référence vers la fenêtre). Ces méthodes ne contiennent pas de boucle (et la fonction jeu() non plus) : il y a une seule boucle principale qui est dans le main.

                  Après je te laisse imaginer le reste (Là j'ai pas mes codes avec moi)

                  Je ne sais pas si c'est une bonne méthode... Pour la fonction jeu en vrai je n'ai pas encore fait dans mon projet, et j'hésite un peu entre utiliser une classe Jeu ou une fonction... Je préférerais utiliser une classe mais avec mon code, je ne saurais pas trop où déclarer mon instance...


                  Ok, je vois à peu près :) .

                  Citation : Goten

                  Il me semble qu'il y'a un projet pour faire un GUI sous openGL...


                  Je ne comprends pas très bien ce que tu veux dire :euh: ...

                  • Partager sur Facebook
                  • Partager sur Twitter
                  Anonyme
                    14 juin 2008 à 18:12:47

                    pour créer une GUI (comme QT, CEGUI, etc...) qui s'integre a OpenGL.
                    • Partager sur Facebook
                    • Partager sur Twitter
                    Anonyme
                      14 juin 2008 à 19:04:18

                      avoir un menu ne signifie pas avoir _besoin_ d'une GUI.
                      Et pas QT (QuickTime) mais Qt....
                      • Partager sur Facebook
                      • Partager sur Twitter
                        21 juin 2008 à 14:59:42

                        Je n'ai pas l'intention de créer une GUI, mais de savoir comment alterner entre le jeu et les menus :) .
                        • Partager sur Facebook
                        • Partager sur Twitter

                        Un système de menu dans un jeu

                        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                        • Editeur
                        • Markdown