Qual è il modo migliore per creare un sistema di menu principale?


12

So che è facile creare pulsanti che si evidenziano quando si sposta il mouse su di essi, ma quando si tratta di sottomenu sono un po 'bloccato. Qualcuno ha qualche consiglio sul modo migliore per avere un menu principale con sottomenu? (come Singleplayer -> Carica Salva -> Salva 1-5? -> Avvia gioco ecc.)

Risposte:


12

Questo di solito viene fatto usando una pila di stati di gioco. Ad esempio, ogni elemento elencato sopra verrebbe inserito in una pila come segue:

  • gameplay
  • Seleziona Salva
  • Giocatore singolo
  • Menu principale

Dove ogni stato nella pila fa riferimento ai suoi sotto-elementi. Quando si fa clic su un pulsante, lo stato corrispondente viene inserito nella pila e diventa l'elemento più in alto che viene disegnato e con cui interagisce. Di solito, si disegna solo quello stato superiore, a meno che non ci sia una sorta di trasparenza tra i livelli, nel qual caso si disegna dal fondo dello stack fino a quando si disegna lo stato attivo.


Se vuoi altre idee sulle pile di stato del gioco, c'è questa domanda: gamedev.stackexchange.com/questions/1783/game-state-stack
The Communist Duck

6

Dovresti sicuramente implementarlo come una macchina a stati finiti (FSM) o una pila di stati (sottomenu), a seconda dei requisiti esatti. Qualunque sottomenu sia quello corrente in FSM o quello in cima allo stack, disegna sullo schermo e gestisce l'input. E poi quando rileva che l'utente fa clic su un pulsante, commuta l'FSM o inserisce nello stack lo stato corretto per passare alla schermata successiva.

Nel tuo caso sto pensando che uno Stack sia il migliore, ma se tu avessi un sistema di menu più complesso che salta arbitrariamente attorno ai menu, allora vorresti usare un FSM.


4

"Il modo migliore" è del tutto soggettivo. Guarda come lo fanno altri giochi e vedi se ne trovi uno che funziona bene. L'unica cosa di cui hai assolutamente bisogno è un modo per l'utente di premere Annulla e tornare al livello precedente. Puoi dare a ciascun oggetto menu un riferimento al menu da cui è stato aperto o implementarlo con uno stack.

A parte questo, tutto dipende da come si sente il tuo gioco e da come vuoi che i tuoi menu si sentano. Ogni menu dovrebbe occupare l'intero schermo, in stile Final Fantasy? Dovrebbero ramificarsi a vicenda come i sottomenu di Windows? Dovresti cercare qualcosa di esotico come i menu radiali? Dipende da te, davvero.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.