Escolhas por imagens
Antes de sabermos como programaremos o nosso sistema, vamos ver o que iremos programar. Este é o resultado visual:

Como pode ver, damos opções de escolhas ao jogador, mas diferente das escolhas que os eventos oferecem por padrão, estas são feitas por imagens e cada opção de escolha é uma imagem diferente.
Imagens
Para começar, precisamos das imagens usadas no sistema. Neste caso, é importante lembrar que em uma escolha com 3 opções teremos 4 imagens: uma para o fundo e outras três para cada uma das opções. Para agora, salve e importe as imagens abaixo na pasta Pictures de um projeto vazio:
Observação
É importante que todo o sistema seja programado em um evento que esteja em Processo Paralelo, de preferência em um Evento Comum, pois precisamos verificar quando as teclas que movimentam o cursor e a tecla de seleção de opção estiverem sendo pressionadas e atualizar as imagens cada vez que isto for feito, e este tipo de coisa só é possível em eventos em Processo Paralelo.
Bloqueando ações externas
Para começar, precisamos fazer com que o personagem não se mova quando as teclas direcionais forem pressionadas, para que assim possamos utilizá-las para movimentar nosso "cursor". Como isto pode ser feito? É bem simples, usando o comando Mover Evento, selecionando Personagem e inserindo Esperar: 4 frames. Isto porque o evento está em Processo Paralelo, logo, a todo instante o personagem irá ficar quatro frames sem fazer nada.
Após isto, proibiremos o acesso ao menu principal, para que não se possa abri-lo enquanto estiver na seleção.
Variáveis
Agora trabalharemos em fazer com que quando pressionemos as teclas, o valor de uma variável mude. Iremos usá-la para armazenar a posição do nosso cursor: quando o valor desta variável for 0, a opção selecionada será a primeira, quando for 1, será a segunda e assim sucessivamente. Usaremos então uma condição que verificará se a seta direita for pressionada o valor da variável subirá em 1 e se a esquerda for pressionada descerá em 1. Para que o cursor não se mova rápido demais, antes de mudar o valor da variável colocaremos uma pequena espera (2 frames já bastam).
Nesta altura encontramos um pequeno problema: ao pressionar um dos lados o valor pode subir ou descer tanto que chegará ao valor de uma opção não existente. A solução é simples: basta verificar se o valor é maior do que o limite de opções, e se for, voltaremos ao valor inicial. Assim, se pressionar a seta direita e chegar em uma opção não existente, a opção selecionada voltará a ser a primeira, repetindo o ciclo. O mesmo para o caso da esquerda, que volta à ultima opção. Por agora nosso evento deve estar desta maneira:

O visual
Agora que a parte técnica está feita, iremos trabalhar na parte visual do sistema. Para começar basta usar o Mostrar Imagem e selecionar a imagem que usaremos como fundo. Depois, iremos usar condições para verificar a posição do cursor e dentro dessas condições mostraremos a imagem que queremos para cada posição.
Como neste tutorial a opção selecionada será destacada pela opacidade, basta fazer com que quando a opção selecionada for a 0, por exemplo, a imagem desta opção seja mostrada normalmente enquanto as outras duas fiquem com opacidade em 50%, assim:

Com isto já temos o essencial programado: já podemos movimentar o cursor e definir sua posição. Para acabar o sistema basta fazer com que as escolhas sejam executadas. Como isto pode ser feito?
A execução
Usando estas condições para verificar a posição do cursor, podemos usar outra condição para verificar se a "tecla C" (que equivale a Enter e Espaço) foi pressionada e, se for, executar uma ação. Para o caso, quando uma das opções for selecionada, daremos fim à tela de escolhas. Isso significa que deletaremos todas as imagens, permitiremos o uso do menu e desativaremos o sistema.
Como nosso exemplo foi feito num Evento Comum em Processo Paralelo, desativaremos também a switch que ativa esse evento. Lembrando que aqui também usaremos a Espera para evitar que tudo aconteça muito rápido. Vamos ver como se faz em uma das opções. Após isto, basta reproduzir o mesmo nas outras, mudando a ação:

Já pode criar alguma maneira de ativar este nosso evento. Se for feito por Evento Comum basta ativar a switch dele, por exemplo. Após isso, pode testar, está pronto.
Em alguns casos pode ser necessário fazer com que não haja nenhum tipo de interação entre personagem e cenário, então temos que teleportar o herói para algum mapa vazio, onde este tipo de coisa não acontece, e após a escolha da opção teleportá-lo de volta ao mapa em que estava antes.
Data: 9 de outubro de 2011





