Jaki jest najlepszy sposób na stworzenie systemu menu głównego?

12

Wiem, że łatwo jest tworzyć przyciski, które wyróżniają się po najechaniu myszką nad nimi, ale jeśli chodzi o podmenu, trochę utknąłem. Czy ktoś ma jakieś wskazówki, jak najlepiej mieć menu główne z podmenu? (jak Singleplayer -> Load Save -> Save 1-5? -> Rozpocznij grę itp.)

Dlaor
źródło

Odpowiedzi:

12

Zwykle odbywa się to za pomocą stosu stanów gry. Na przykład każdy wymieniony powyżej przedmiot zostałby wypchnięty na stos w następujący sposób:

  • Rozgrywka
  • Wybierz Zapisz
  • Jeden gracz
  • Menu główne

Gdzie każdy stan na stosie odwołuje się do swoich podelementów. Kliknięcie przycisku powoduje, że odpowiadający mu stan jest wpychany na stos i staje się najwyższym przedmiotem, z którym jest rysowany i wchodzi w interakcję. Zazwyczaj rysujesz tylko ten stan górny, chyba że pomiędzy warstwami istnieje pewien rodzaj przezroczystości, w takim przypadku rysujesz od dołu stosu, aż narysujesz stan aktywny.

Sean James
źródło
Jeśli chcesz uzyskać więcej pomysłów na temat stanu stosów w grze, istnieje pytanie: gamedev.stackexchange.com/questions/1783/game-state-stack
The Communist Duck
6

Zdecydowanie powinieneś zaimplementować go jako maszynę skończoną (FSM) lub stos stanów (podmenu), w zależności od dokładnych wymagań. Niezależnie od tego, które podmenu jest bieżące w FSM lub najwyższe na stosie, rysuje się na ekranie i obsługuje wprowadzanie. A potem, gdy wykryje, że użytkownik kliknie przycisk, przełącza FSM lub ustawia odpowiedni stos na stosie, aby przejść do następnego ekranu.

W twoim przypadku uważam, że stos jest najlepszy, ale jeśli miałbyś bardziej złożony system menu, który dowolnie przeskakiwał menu, to chciałbyś użyć FSM.

Ricket
źródło
4

„Najlepszy sposób” jest całkowicie subiektywny. Zobacz, jak robią to inne gry i sprawdź, czy znajdziesz taką, która działa dobrze. Jedyną rzeczą, której absolutnie potrzebujesz, jest sposób, w jaki użytkownik może nacisnąć Anuluj i wrócić do poprzedniego poziomu. Możesz nadać każdemu obiektowi menu odniesienie do menu, z którego został otwarty, lub zaimplementować go za pomocą stosu.

Poza tym wszystko zależy od tego, jak czujesz się w grze i od tego, jak chcesz, aby menu było. Czy każde menu powinno zajmować cały ekran, styl Final Fantasy? Czy powinny rozgałęziać się jak podmenu Windows? Czy powinieneś wybrać coś egzotycznego, na przykład menu radialne? To naprawdę zależy od ciebie.

Mason Wheeler
źródło