¿Cuál es la mejor manera de hacer un sistema de menú principal?

12

Sé que es fácil hacer botones que resaltan cuando mueves el mouse sobre ellos, pero cuando se trata de submenús, estoy un poco atascado. ¿Alguien tiene algunos consejos sobre la mejor manera de tener un menú principal con submenús? (como Singleplayer -> Load Save -> Save 1-5? -> Start game etc.)

Dlaor
fuente

Respuestas:

12

Esto generalmente se hace usando una pila de estados de juego. Por ejemplo, cada elemento enumerado anteriormente se empujaría a una pila de la siguiente manera:

  • Como se Juega
  • Seleccione Guardar
  • Un solo jugador
  • Menú principal

Donde cada estado en la pila hace referencia a sus subelementos. Cuando se hace clic en un botón, su estado correspondiente se empuja a la pila y se convierte en el elemento superior que se dibuja e interactúa con él. Por lo general, solo dibujaría ese estado superior, a menos que haya algún tipo de transparencia entre las capas, en cuyo caso dibujaría desde la parte inferior de la pila hasta que dibuje el estado activo.

Sean James
fuente
Si quieres más ideas sobre las pilas de estado del juego, esta es la siguiente pregunta: gamedev.stackexchange.com/questions/1783/game-state-stack
The Communist Duck
6

Definitivamente debe implementarlo como una máquina de estado finito (FSM) o una pila de estados (submenús), según los requisitos exactos. Cualquiera que sea el submenú que sea el actual en el FSM o el superior en la pila, se dibuja en la pantalla y maneja la entrada. Y luego, cuando detecta que el usuario hace clic en un botón, cambia el FSM o introduce en la pila el estado correcto para pasar a la siguiente pantalla.

En su caso, creo que una pila es la mejor, pero si tuviera un sistema de menús más complejo que saltara arbitrariamente los menús, entonces querría usar un FSM.

Ricket
fuente
4

La "mejor manera" es completamente subjetiva. Mire la forma en que otros juegos lo hacen y vea si encuentra uno que funcione bien. Lo único que necesita absolutamente es una forma para que el usuario presione Cancelar y volver al nivel anterior. Puede devolver a cada objeto de menú una referencia al menú desde el que se abrió o implementarlo con una pila.

Aparte de eso, todo depende de cómo se siente tu juego y cómo quieres que se sientan tus menús. ¿Debería cada menú ocupar toda la pantalla, al estilo Final Fantasy? ¿Deberían ramificarse unos de otros como submenús de Windows? ¿Deberías elegir algo exótico como menús radiales? Depende de usted, de verdad.

Mason Wheeler
fuente