Logo SatellaSoft



Recriando Space Invaders no Construct - Parte 4

Nesta quarta aula, vamos criar os eventos e ações de todos os objetos criado anteriormente.


Ícone homem Gunnar Correa
Ícone data de publicação 03/04/2015
Ícone quantidade de visualização 2,107
Ícone bandeira do Brasil Português

Esta aula será um pouco mais complexa do que as anteriores, já que devemos atribuir várias condições a nossos objetos.

Pegue um Café, uma boa almofada, abra o projeto anterior e preste muita atenção para não se perder.

Nesta aula vamos trabalhar apenas com a Folha de Eventos ou event Sheet e muito pouco com cenario1. O event Sheet tem por objetivo adicionar eventos a outros objetos, tais como Keyboard, Player, Inimigos e tudo mais.

Clique na aba Event Sheet 1, para selecionar a Folha de Eventos.

 

Clique sobre a opção Add Event Sheet, Selecione o Keyboard e Clique em Next.

 

Selecione a opção On Key pressed, este evento permite selecionar qual tecla vai ativar o evento, em seguida clique em Next.

Clique no botão Click to Choose, em seguida pressione a tecla direcional cima, por fim, clique em OK e Done.

Vamos fazer o Respaw (criar) o projetil, mas antes adicione o Behavior Bullet ao nosso Sprite projetil.

Voltando ao Event Sheet, Clique em Add Action, de um duplo clique em player, no módulo Misc selecione Spawn another object e clique em Next.

 

Clique em Object, selecione o Player, em Image point, adicione 1, pois este é o ponto que deve fazer o Respaw do projetil, onde definimos o Image Point na aula passada, para finalizar clique em Done.

Agora entenda, quando o jogador pressionar a tecla direcional cima, o Player vai criar o objeto projetil, este projetil está com o Behavior Bullet que segue uma direção única.

Rode o jogo e veja o resultado, note que o projetil é instanciado, porém não vai para cima e sim para a direita.

Para solucionar o problema, basta alterar o Anglo após ser criado, mas antes volte ao palco, selecione o projetil e defina a altura e largura com os mesmos valores.

Como vamos fazer a rotação, se a altura e largura não forem iguais, ao criar o projetil parecerá que o projetil está deitado, então deixe quadrado.

Voltando novamente ao Event Sheet, ainda no evento Keyboard, clique novamente em Add action, selecione o projetil, de um duplo clique sobre Set angle, insira -90 e clique em Done.

Teste o jogo para ver o resultado.

Com o projetil funcionando, devemos agora destruir os inimigos que forem colididos pelo projetil, se houver colisão então destrói o inimigo e o projetil.

Para isto, clique em Add Event, de um duplo clique em inimigo1, selecione no módulo Collisions o evento On collision with another object e clique em Next.

No botão Click to choose, selecione o projetil e clique em Done.

Este evento verifica a colisão do inimigo com o projetil, se houver a colisão então execute X ação.

Vamos agora destruir o inimigo1 e o bulet que houve a colisão, então clique em Add action, correspondente ao inimigo1.

Selecione novamente o inimigo1, clique em Next, selecione a ação destroy e clique em Done.

Faça o mesmo processo para destruir o projetil, o resultado deverá ser igual mostrado abaixo.

Execute o jogo para ver o resultado.

Com os inimigos sendo destruídos, execute os mesmos processos para o inimigo2, inimigo3 e inimigo4.

Sua folha deve ficar como a mostrada abaixo.

Embora não seja visível, o projetil está saindo da tela, e isto requer processamento, muito pouco, mas requer, para destruir o projetil quando sair da tela, basta executar o mesmo processo que fizemos para o inimigo, para o objeto colisao, pois ele tem uma parte que fica na parte superior da tela, afinal, este é o motivo do objeto existir.

Se o projetil colidir com o objeto colisao, então destrói o projetil.

Nos resta agora exibir a quantidade de inimigos abatidos, para isto devemos cria uma variável, a cada inimigo destruído incrementos 1 a ela.

Clique com o botão direito do mouse em qualquer área vazia do Event Sheet em seguida clique em Add global variable.

A janela New global variable deve aparecer, apenas atribuía o nome para inimigos no campo name e clique em OK.

Vamos adicionar uma ação para o inimigo 1, então clique em Add action, selecione System e clique em Next.

No módulo Global & local variables, selecione Add to e clique em Next.

 

Na janela seguinte, em Variable deverá aparecer selecionado a variável inimigos, já que temos apenas ela declarada, defina 1 em value e clique em Done.

Faça o mesmo processo para os demais inimigos, de forma fácil você pode clicar na ação, apertar CTRL+C para copiar a ação, clicar no em ações no próximo inimigo e apertar CTRL+V para colar.

Desta forma, a cada inimigo abatido, será incrementado o valor 1 a variável inimigos.

 

Vamos exibir no Text pontuacao a quantidade de inimigos abatido.

Adicione um novo evento, clique em System, selecione Every tick e clique em OK.

O evento Every Tick é executado a cada frame, se compreende inglês, isto é obvio.

Adicione uma nova condição, selecione o objeto pontuacao, clique em Next, selecione a opção Set text e clique novamente em Next.

A ação Set text, permite inserir um texto ao objeto.

No campo Text, insira: “inimigos: ” & inimigos, sendo o valor a frente de & corresponde a variável, para finalizar clique em Done.

Teste o jogo para ver o resultado.

Agora só nos resta inserir o The End para quando abatermos todos inimigos.

Temos no total 28 inimigos, o que devemos fazer agora, é voltar ao cenario1 que é o palco, inserir uma nova Layer, importar o Sprite The End, atribuir o initial Visibility para invisible, assim ao iniciar o game o Sprite não é carregado.

No Event Sheet devemos a cada frame verificar se a variável inimigo é igual a 28, se for mudamos o estado de visão do Sprite The End e destruímos o Player.

A teoria esta dita, vamos a prática, crie uma nova Layer com o nome de final.

Ajuste o Sprite ao centro da tela, note na imagem que foi ocultado a Layer Players, para melhor ajuste e visibilidade do resultado final

Em Properties, no módulo Initial Visibility mude para invisible e Name para theend.

Voltando mais uma vez ao Event Sheet, adicione um novo evento, Selecione System, every Tick e clique em Done.

Devemos adicionar um outro evento, clique com o botão direito do mouse sobre o Evento que acabamos de criar em seguida clique em Add another condition.

Clique em System, Next selecione Compare variable e clique em Next.

 

Em Variable, estará selecionado a variável inimigos, adicione 28 em value, este é a quantidade total de inimigos.

Em Comparison, você deve informar a condição, neste caso não alteramos pois o valor padrão já é Equal to, ou seja igual (==).

Adicione uma nova ação para nosso evento, selecione o objeto theend, Set visible, clique em Next, em Visibility selecione Visible por fim clique em Done.

Para esta mesma condição, destrua o Player, não queremos que ele fique em cena ao final do Game.

 

Teste o jogo para ver o resultado final.

IMPORTANTE: Sempre que for testar o game, clique no botão Play, atualizar a página não carregará as novas definições alteradas.

Terminamos aqui nossa quarta aula, em caso de dúvidas deixe nos comentários, na próxima e última aula vamos criar a sonorização do Game.

Até a próxima e bons estudos!




Sobre o autor


Gunnar Correa

Nome: Gunnar Correa

Site: http://www.gunnarcorrea.com


Autodidata, graduado em Desenvolvimento Web e especialista em Tecnologias na Educação em uma universidade no interior de São Paulo. Comecei meus estudos na área de programação quando ainda era criança, e atualmente estou estudando desenvolvimento de jogos.

Sou o CEO do portal SatellaSoft, criado em 2009 com o intuito de compartilhar conhecimento de forma gratuita e inédita.


Comentários



É necessário estar autenticado para comentar, clique aqui para se registrar ou aqui para acessar a sua conta!