Quelle est la meilleure façon de créer un système de menu principal?

12

Je sais que c'est facile de créer des boutons qui se mettent en évidence lorsque vous déplacez votre souris dessus, mais en ce qui concerne les sous-menus, je suis un peu coincé. Quelqu'un a-t-il des conseils sur la meilleure façon d'avoir un menu principal avec des sous-menus? (comme Solo -> Charger Enregistrer -> Enregistrer 1-5? -> Démarrer le jeu, etc.)

Dlaor
la source

Réponses:

12

Cela se fait généralement à l'aide d'une pile d'états de jeu. Par exemple, chaque élément répertorié ci-dessus serait poussé sur une pile comme suit:

  • Gameplay
  • Sélectionnez Enregistrer
  • Un joueur
  • Menu principal

Où chaque état de la pile fait référence à ses sous-éléments. Lorsqu'un bouton est cliqué, son état correspondant est poussé sur la pile et devient l'élément le plus haut avec lequel on dessine et interagit. Habituellement, vous dessinez uniquement cet état supérieur, sauf s'il existe une sorte de transparence entre les calques, auquel cas vous dessinez du bas de la pile jusqu'à ce que vous dessiniez l'état actif.

Sean James
la source
Si vous voulez plus d'idées sur les piles d'état du jeu, il y a cette question: gamedev.stackexchange.com/questions/1783/game-state-stack
The Communist Duck
6

Vous devez certainement l'implémenter comme une machine à états finis (FSM) ou une pile d'états (sous-menus), selon les exigences exactes. Quel que soit le sous-menu qui est le sous-menu actuel dans le FSM ou celui du haut de la pile, dessine à l'écran et gère l'entrée. Et puis, lorsqu'il détecte que l'utilisateur clique sur un bouton, il bascule le FSM ou pousse sur la pile l'état correct pour passer à l'écran suivant.

Dans votre cas, je pense qu'une pile est la meilleure, mais si vous aviez un système de menus plus complexe qui sautait arbitrairement dans les menus, alors vous voudriez utiliser un FSM.

Ricket
la source
4

La "meilleure façon" est entièrement subjective. Regardez comment les autres jeux le font et voyez si vous en trouvez un qui fonctionne bien. La seule chose dont vous avez absolument besoin est un moyen pour l'utilisateur d'appuyer sur Annuler et de revenir au niveau précédent. Vous pouvez donner à chaque objet de menu une référence au menu à partir duquel il a été ouvert ou l'implémenter avec une pile.

En dehors de cela, tout dépend de ce à quoi ressemble votre jeu et de ce que vous voulez que vos menus ressemblent. Chaque menu doit-il occuper tout l'écran, dans le style de Final Fantasy? Doivent-ils se dériver les uns des autres comme des sous-menus Windows? Devriez-vous opter pour quelque chose d'exotique comme les menus radiaux? C'est à vous, vraiment.

Mason Wheeler
la source