E o que isso nos dá? Bem, como o Manual nos diz em How events work, "as instâncias envolvidas... são ‘pegas’ pelo evento. Então, as ações executam apenas as instâncias que foram pegas pelas condições."
Aqui no caso, significa que, sempre que ele chegar em qualquer um dos pisos, os valores das variáveis do piso em que está serão pegas. Então, quando o evento associado 'System add Flooring.points to score' é executado, o jogo sabe o número correto de pontos à adicionar, sem que tenhamos que dizer à ele o valor de cada piso. Isto mostra o poder do Construct 2.
Agora, nós vamos colocar as ações adicionais que serão executadas quando o jogar chegar no piso. Elas serão adicionadas como sub-eventos de Player | Platform On landed / Player | Is overlapping Flooring.
Botão direito no espaço embaixo da setinha verde e ao lado de ‘Player -> Is overlapping Flooring’ e clique em ‘Add sub-event’.
Add event: System -> Compare two values -> em First value, digite prevFloor. Em ‘Comparison’, escolha ‘Less than’ e em ‘Second value’, digite ‘Flooring.floor’
Clique em Add action ao lado do evento acima e faça: System -> Add to -> em Variable, escolha ‘score’ e em Value digite ‘Flooring.points’
Add action: System -> Set value -> em Variable, digite ‘prevFloor‘ e em Value, ‘Flooring.floor’
Adicione mais um sub-evento à Platform On Landed:
Add event: System -> Compare two values -> First value: prevFloor. Comparison: Greater or equal. Second value: Flooring.floor
Add action: System -> Set value ->Variable: prevFloor. Value: Flooring.floor
Você terminará com algo assim:
Depois de todo esse trabalho é hora de criar nosso HUD (heads-up display).
Vamos precisar adicionar outra camada (layer) chamada 'HUD'. (Ela tem que ser a primeira e deve estar ativa!) Estando tudo certo, adicione dois objetos de texto (text objects), um no canto superior direito chamado 'StatusText' e outro no centro da tela chamado 'ResultText'. Faça o seguinte procedimento para cada um deles:
Faça ‘Insert New Object:
Selecione ‘Text’ e depois clique em ‘Insert’
Quando o mouse virá uma cruz, clique na posição onde quer que o objeto fique. No canto superior direito para o ‘StatusText’ e no centro do layout para o ‘ResultText’.
Lembre-se de mudar os nomes dos objetos de texto para os aqui citados e um detalhe importante: nos dois objetos deixe a propriedade ‘Text’ em branco.
Você ficará com algo parecido com isso:
O StatusText será usado para exibir o score e o health, e o ResultText exibirá o 'Game over', quando Tim morrer, ou 'Level 2 reached' quando ele chegar no último piso com 25 pontos ou mais (a mudança de nível nós veremos numa parte mais a frente).
Vamos adicionar outro sub-evento em Player | Platform On landed / Player | Is overlapping Flooring que terá duas condições para dizer se o Level 2 foi alcançado. Faça o mesmo procedimento para adição de um sub-evento:
Add event: Flooring -> Compare instance variable e coloque como a tela abaixo:
Agora clique com o botão direito em cima de Flooring e escolha ‘Add another condition’:
Add event: System -> Compare variable ->em Variable escolha ‘score’. Em ‘Comparison’, ‘Greater or equal’. Em ‘value’, 25.
Clique em Add action ao lado da condição acima:
E faça: ResultText -> Set text -> digite ''Level 2 reached"
Agora para exibir 'Game over' e reiniciar a saúde de Tim, vamos precisar de um outro evento. Chega de sub-eventos!
Add event: System -> Compare variable ->em Variable, ‘health’. Em ‘Comparison’, ‘Less or equal’. Em ‘Value’, 0.
Action: ResultText -> Set text: ''Game over"
Action: System -> Set value -> health :3
Action: System -> Wait -> Seconds: 3
Action: ResultText -> Set text: ''" (apaga o 'Game over')
Por fim, precisamos exibir a pontuação e a saúde do Tim. Para isso, adicione o seguinte evento:
Add event: System -> Every tick
Action: StatusText -> Set text: "Score: " & score & " Health: " & health
Este é o fim do tutorial. Espero que tenham gostado.
Perdoem qualquer erro de digitação. =)
Abraços!
Glauber Holanda
glauberholanda10pyw@gmail.com