Criando um botão de saida
para o jogo
Como criar um botão de saida, nos jogos independentes


Com a implementação do jogo independente, ou seja, o jogo rodando fora do editor do Zeus, apareceu a necessidade de criar um botão de encerramento do mesmo, para esses casos.

Nota: no Zeus, os jogos nunca são encerrados, mas apenas substituidos por outros jogos ou encerram com o encerramento do próprio Zeus.

Para a criação desse botão, podemos usar 3 tipos diferentes de solução. Na primeira delas basta utilizar uma simples instrução que ativa um botão pré programado, fornecendo as coordenadas do canto superior esquerdo do botão, dentro da imagem do painel principal do jogo.

 
//--- Botão de saida - btexit x,y ----------------------
//
//onde X = coord X do canto superior esquerdo do botão
//     Y = coord Y do canto superior esquerdo do botão
  ...
  btexit 577,31
  ...

Este procedimento irá mostrar o botão porém, se o jogo estiver sendo executado dentro do Zeus, ele não encerrará o mesmo, mas irá tornar a tela do visor totalmente branca, para indicar que foi devidamente executada a operação.

A imagem do botão (que aparece acima) é sempre a mesma. Caso seja informada a palavra "off" no lugar das coordenadas, o botão será desativado.

Na segunda solução podemos usar a programação dos scripts e criar, por exemplo, um "botão" ou área clicável dentro do visor do jogo (usando os links clicáveis). Esse recurso pode fazer parte de uma tela de recursos do jogo ou quando o jogador morre e a tela de encerramento é apresentada a ele.

 
//--- Exemplo de botão saida no visor ------------------
  ...
  //ativando a área clicável
  shape 10,10,saida.bmp
refresh
link 0,10,10,57,33,1,5,Encerrar ...
fim
:Encerrar
halt
fim

Note que usamos um shape (saida.bmp) para servir de referência à área clicável. Como no caso anterior, se o jogo estiver rodando dentro do Zeus, apenas a tela do visor ficará totalmente branca.

A terceira solução é um pouco mais complexa e exige o uso de uma instrução não documentada (secreta) e duas imagens distintas, que farão o papel de botão na posição normal e botão na posição pressionado. O primeiro passo é definir o botão:

 
//Instrução: btndef bt,cr,x,y,imgup,imgdw,scpt
//
//onde   bt = número (1 a 5) do botão
         cr = cursor utilizado pelo botão
          x = coord X do canto sup esquerdo do botão
          y = coord Y do canto sup esquerdo do botão
      imgup = arquivo .bmp do botão posição normal
      imgdw = arquivo .bmp do botão posição clicado
       scpt = nome do script que será executado
  ...
  btndef 1,1,540,60,saidaup,saidadw,ClicouSaida
...

Neste caso será preciso criar o script ClicouSaida e colocar nele a instrução halt (que produz efetivamente o encerramento do jogo impreterivelmente).

Carregue o script encerrar (no Jogo Teste Inicial) e execute-o para ter uma idéia do funcionando dessas soluções.


ZEUS MAGAZINE - revista de programação de adventures