Avatar do usuário
Tutoriais & Aulas
Colaborador
Colaborador
Autor
Mensagens: 174
Registrado em: Qui Abr 28, 2016 11:37 am
Karma: 910

[PROG] Tutorial Menu e Submenu em gml

Qui Abr 28, 2016 7:33 pm

Autor original: LeeroyFan


-Tutorial: Menu em texto e submenu-

Versão do Game Maker necessária: LITE.
Nível de dificuldade:Médio

Começando:
Primeiro abra sua versão do Game maker (pode ser qualquer uma, esse exemplo foi feito com a versão 7.0)


Crie uma room, um objeto e um script em seu projeto.
Renomeie para que fiquem desse jeito:
Objeto >> obj_menu
script>> scr_InitMenu
Agora coloque o obj_menu em qualquer lugar de sua room.

No obj_menu, coloque o seguinte código no evento “Create”
{
  scr_InitMenu();
}


Isso chamará o scr_InitMenu, o que ainda não faz nada.
Ok,  vamos começar a programar os comandos básicos do menu, como: Começar o jogo; Opções; Instruções; Sair;
Você pode adicionar mais opções se você precisar, mas essa são as que vamos usar agora.

No script scr_InitMenu, coloque o seguinte código:
{
  menuSelected = 1;
  menuPage = 0;

  menuText[0,0] = 4;
  menuText[0,1] = "Start Game"
  menuText[0,2] = "Options"
  menuText[0,3] = "Instructions"
  menuText[0,4] = "Quit Game"
  
  menuText[1,0] = 3
  menuText[1,1] = "World 1"
  menuText[1,2] = "World 2"
  menuText[1,3] = "Back"
}


Você deve ter percebido que “menuText[0]=4;”. Isso é o número de opções que o menu terá.
A “menuSelected” é a variável que usaremos para saber qual opção está selecionada.
Abra o obj_Menu e adicione um evento Draw, nele, coloque:

{
  for (i = 1; i <= menuText[menuPage,0]; i+=1) {
    if (menuSelected = i) { draw_set_color(c_red); } else { draw_set_color(c_black); }
    draw_text(x,y+(i*16)-16,menuText[menuPage,i]);
  }
}

Esta é a posição do menu. Ela depende de onde você colocou o obj_Menu (aqui foi 0,0).

Agora vamos fazer com que possamos navegar no menu. Usaremos as teclas : Cima; Baixo.

No obj_InitMenu, adicione o press up, e coloque o código:
{
  menuSelected -=1;
  if (menuSelected < 1) { menuSelected = menuText[menuPage,0]; }
}


E no press down, coloque o código:
{
  menuSelected +=1;
  if (menuSelected > menuText[menuPage,0]) { menuSelected = 1; }
}


Se você testar agora, poderá se mover entre as opções usando as setas.
Mas agora precisamos de alguma tecla para selecionar a opção desejada, por isso, adicione um evento press 'Enter' e coloque o seguinte código:
{
  switch(menuPage) {
    case 0: // Main Menu
      if (menuSelected = 1) { menuPage = 1; menuSelected = 1; } // Start Game
      if (menuSelected = 2) { show_message("Options"); } // Options
      if (menuSelected = 3) { show_message("Instructions"); } // Instructions
      if (menuSelected = 4) { show_message("Exit Game"); } // Exit Game
    break;
    case 1:  // Start Game menu
      if (menuSelected = 1) { show_message("World 1"); } // World 1
      if (menuSelected = 2) { show_message("World 2"); } // World 2
      if (menuSelected = 3) { menuPage = 0; menuSelected = 1; } // Back
    break;
  }
}

Para deixar esse menu realmente útil, troque os “show_message()” por algum comando, por exemplo, troque o “show_message()” do “Sair” por “game_end()”

Conclusão
Espero que você tenha aprendido um pouco mais sobre gml com esse tutorial!

Traduzido e adaptado por LeeroyFan
Tutorial original feito por Chronic (game maker community)

Exemplos (estão em inglês)
Menu  com submenu
1

Tags: