Contadores e Sub Eventos

Adicionando contadores de vidas

Layers são as camadas que o nosso projeto tem, elas servem para organização e manipulação mais prática dos elementos. Vamos construir nossos contadores em uma nova layer e atribuir alguns efeitos diferentes a mesma.

  • Identifique a janela “Layers” e clique no “mais” para adicionar uma layer ao nosso projeto.

  • A Layer 0 contêm tudo aquilo que fizemos até agora, a Layer 1 terá nossos contadores. Selecione a Layer 1 caso não estejam nas cuidado, caso clique sobre o cadeado, não estará selecionando a Layer, nas trancando-a, ou seja, proibindo modificações.

  • Com a Layer 1 selecionada, insira um novo objeto do tipo texto e posicione-o no topo do projeto

 

 

Criando e usando variáveis globais

 

Variáveis globais são aquelas que podem ser acessadas em qualquer parte do programa, justamente aquilo que precisamos!

  • Clique com o lado direito do mouse e selecione a opção “Add global variable”

  • Uma nova janela se abrirá, nela podemos definir o nome, tipo, valor inicial e uma descrição a nossa variável global. Preencha da mesma forma da imagem abaixo e clique em “OK”.

  • As variáveis globais ficam no topo do programa, isso significa que todos podem interagir com ela.

  • O objeto texto que criamos anterior mente será utilizado agora. Adicione um novo evento. Você pode ver que agora temos dois objetos de texto, “Text” é a mensagem de game over enquanto que “Text2” é o objeto criado a pouco. Adicione um Evento System e escolha a ação “Every tick” (a todo momento)

  • Adicione uma nova ação a este evento, selecione “Text2” e escolha a ação “Set text”

  • Uma nova janela se abrirá, nela, você deve colocar a mensagem que deseja exibir, coloque “Vidas: ”&vidas com aspas. O “&” serve para concatenação, neste caso estamos concatenando a palavra “Vidas: ” com a quantidade de vidas que está armazenada na nossa variável global. Clique em “Done”.

Obs.: Depois de colocar o “&” o Construct detecta as variáveis do nosso programa, as que possuem um ícone de globo verde na frente são as variáveis globais que criamos, as que possuem um ícone de engrenagem são as variáveis que o próprio programa criou para seu funcionamento.

  • Seu evento deve estar como o abaixo. Ao rodar o jogo você verá o contador de vidas, mas as mortes ainda não contam, vamos consertar isso!

  • Adicione uma nova ação ao evento “Sprite On destroy”, selecione System e escolha “Subtract from”

  • Uma nova janela será aberta, nela você pode escolher a variável e quanto será subtraída dela, certifique-se que está como abaixo e clique em “Done”.

  • Estando seu evento como mostrado abaixo, rode o jogo e verá que nada mudou, isso por que estamos caindo direto na tela de game over, para que tudo funcione devemos quebrar nosso evento em sub eventos

 

Sub eventos

 

Em Event sheet vamos adicionar um sub evento. Sub eventos são executados apenas quando o evento principal é chamado, em nenhum outro caso.

  • Para adicionar um sub evento, clique com o lado direito do mouse em um evento, vá em Add e selecione Add sub-event, outro modo de fazer isso é selecionar um evento e apertas “S”. No nosso projeto, precisamos criar um sub evento para o evento Sprite On destroy.

  • Será aberta uma janela idêntica a de escolha de eventos, nela, escolha “System” e selecione a opção “Compare variable”.

  • Uma nova janela será aberta, nela você pode escolher a variável, tipo de comparação e valor com qual deseja comparar, preencha os campos de acordo com a imagem abaixo e clique em “Done”

  • Seu sub evento foi criado, você pode ver que existe uma linha que leva do 7 ao 8 na imagem abaixo, isso indica que o evento 8 é um sub evento de evento 7. Arraste as ações “System – Go to Layout 2” e “Audio – Play fame_over” do evento principal para o sub evento, dessa forma, a tela de game over só será exibida quando o número de vidas for menor que zero.

  • Rode o jogo e verá que o contador de vidas diminui conforme o personagem morre, mas ele não volta, para isso vamos adicionar outro sub evento ao “Sprite On destroy”

  • Esse sub evento deve ser do tipo System, sua condição deve ser, novamente, “Compare variable”.

  • Configure a comparação da seguinte forma:

  • Adicione duas ações ao sub evento criado:

    • System: Restart Layout (reinicia a tela)

    • Audio: Play Super Mario Bros, looping, volume: -10, tag: “tema”

  • Nosso jogo agora conta as vidas e tem um sistema de morte, respawn e game over! Mas você notou algo? Nosso contador de vidas não está de movendo com o personagem. Para consertar isso

Fixar objetos na tela

  • Selecione a Layer onde seu contador está. Nas propriedades defina o Parallax de X e Y como 0. Pronto! Agora seu contador está estático.

 

Contador de tempo

  • Na mesma layer onde você colocou o contador de vidas adicione um novo objeto Text e posicione-o no topo da tela.

  • Em Event sheet, crie uma variável global:

    • Nome: tempo

    • Tipo: Número

    • Valor Inicial: 30

  • Adicione um novo evento do tipo System e escolha a condição “Every X seconds”

  • Você pode modificar o valor, mas deixe o tempo padrão de 1 segundo.

  • Adicione uma nova ação ao evento recém-criado, esta ação deve subtrair 1 da variável “tempo” (Dica: Já fizemos isto antes);

  • No evento System: Every tick que você criou antes, adiciona outra ação, esta ação deve mostrar o contador de tempo na tela.

Exercício Individual

  • Faça com que o personagem perca uma vida quando o tempo chegar a 0.

  • Quando o tempo chegar a 0 o contador deve parar

  • Quando o personagem voltar, o tempo também deve recomeçar a contagem.