Como criar um menu de opções


Em algum momento da partida o jogador pode querer tomar decisões referentes ao jogo, como reiniciar a partida, encerrar, mudar de layout, saltar para uma outra aventura, etc. A forma mais simples de resolver isto é criando um script menu, chamado (por exemplo) menu.scp. Ele seria mais ou menos assim:

//=== Menu principal ==============================
  setmode= 4,900,420
  cortxt= FF0000
  cleartela
  cleartxt
  gosub comum
  shape= menu.png,100,0,700,220
  'Escolha uma das seguintes opções:
  §§§~~~~~~~@Retornar ao jogo|xvlt|
  ~~~@Encerrar a partida|final|'
  printx $,100,230,700,190

As primeiras instruções já foram bem explicadas, restando portanto decifrar o texto da instrução printx.

O caracter "§" indica uma quebra de linha e portanto estamos saltando três delas após o texto introdutório.

O caracter "~" força a colocação de um espaço e como estamos usando uma fonte monoespaçada, isso vai colocar o texto relativamente afastado da margem esquerda.

Agora vem o pulo do lobo, digo, do gato: o caracter "@" indica que o que vem a seguir será interpretado como um hiperlink, ou seja, o texto até o primeiro caracter "|" será usado como o texto clicável. Entre esse caracter e o segundo caracter "|" será declarado o que vai acontecer, caso o hiperlink seja clicado. Normalmente este campo aponta para um determinado script.

No exemplo acima, retornar ao jogo equivale a executar o pseudo script xvlt, que é exatamente o último script executado que continha a instrução retscp=. Já o encerramento da partida nada mais é do que a execução do script final.scp.

Resta definir onde chamar o script menu.scp e o local mais adequado para fazer isso é no script comum.scp, logo na primeira instrução (antes do "X" de saída).

//=== Procedimentos comuns a posições ==============
  shape= menu.gif,840,0,45,69,menu
  shape= sair.png,840,350,45,69,final

Agora só falta as imagens usadas, pra completar o kit lobo:

Para facilitar na diagramação, os 3 pontinhos que indicam a opção menu tem as mesmas dimensões do X da saída.