Qual é a melhor maneira de criar um sistema de menus principal?

12

Eu sei que é fácil criar botões que se destacam quando você passa o mouse sobre eles, mas quando se trata de submenus, estou meio preso. Alguém recebeu algumas dicas sobre a melhor maneira de ter um menu principal com submenus? (como Singleplayer -> Load Save -> Save 1-5? -> Iniciar jogo etc.)

Dlaor
fonte

Respostas:

12

Isso geralmente é feito usando uma pilha de estados do jogo. Por exemplo, cada item listado acima seria enviado para uma pilha da seguinte maneira:

  • Jogabilidade
  • Selecione Salvar
  • Um jogador
  • Menu principal

Onde cada estado na pilha faz referência a seus subitens. Quando um botão é clicado, seu estado correspondente é empurrado para a pilha e se torna o item mais alto que é desenhado e interagido. Normalmente, você desenharia apenas esse estado superior, a menos que haja algum tipo de transparência entre as camadas; nesse caso, você desenharia da parte inferior da pilha até desenhar o estado ativo.

Sean James
fonte
Se você quiser mais algumas idéias sobre pilhas de estado do jogo, há esta pergunta: gamedev.stackexchange.com/questions/1783/game-state-stack
A Comunista Duck
6

Você deve definitivamente implementá-lo como uma máquina de estados finitos (FSM) ou uma pilha de estados (submenus), dependendo dos requisitos exatos. Qualquer submenu é o atual no FSM ou o superior da pilha, atrai a tela e manipula as entradas. E quando detecta que o usuário clica em um botão, ele alterna o FSM ou pressiona na pilha o estado correto para ir para a próxima tela.

No seu caso, estou pensando que uma pilha é melhor, mas se você tivesse um sistema de menus mais complexo que pulasse arbitrariamente nos menus, seria melhor usar um FSM.

Ricket
fonte
4

"Melhor maneira" é inteiramente subjetivo. Veja como outros jogos o fazem e veja se você encontra um que funcione bem. A única coisa que você precisa é uma maneira de o usuário clicar em Cancelar e voltar ao nível anterior. Você pode dar a cada objeto de menu uma referência para o menu em que foi aberto ou implementá-lo com uma pilha.

Além disso, tudo depende da aparência do seu jogo e da aparência dos menus. Cada menu deve ocupar a tela inteira, no estilo Final Fantasy? Eles devem se ramificar como submenus do Windows? Você deveria optar por algo exótico, como menus radiais? Depende de você, realmente.

Mason Wheeler
fonte