Recriando Space Invaders no Construct - Parte 4

Gunnar CorreaGunnar Correa03/04/2015 às 11:28:21 - 6.526 acessos

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


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 eventSheet e muito pouco com cenario1. O eventSheet 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 Spriteprojetil.

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 Imagepoint, 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 Newglobalvariable 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 Addaction, selecione System e clique em Next.

No módulo Global & local variables, selecione Addto 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 Textpontuacao a quantidade de inimigos abatido.

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

O evento EveryTick é 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 Settext e clique novamente em Next.

A ação Settext, 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 initialVisibility para invisible, assim ao iniciar o game o Sprite não é carregado.

No EventSheet 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 LayerPlayers, para melhor ajuste e visibilidade do resultado final

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

Voltando mais uma vez ao EventSheet, adicione um novo evento, Selecione System, everyTick 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 Addanothercondition.

Clique em System, Next selecione Comparevariable 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á é Equalto, ou seja igual (==).

Adicione uma nova ação para nosso evento, selecione o objeto theend, Setvisible, 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!


Criando Game Construct 2 2D Space Invaders Aulas Tutorial Event Sheet Tiro Jogo Web Inimigos Roteiro

Compartilhe


Gunnar Correa

Gunnar Correa

Autodidata, Graduado em Desenvolvimento Web (FIPP), Especialista em Tecnologias na Educação (Unoeste) e Pós-graduando em Segurança da Informação (Universidade Cruzeiro do Sul). Começou seus estudos na área de programação quando era criança, e atualmente está estudando desenvolvimento de jogos. É CEO do portal SatellaSoft, criado em 2009 com o intuito de compartilhar conhecimento de forma gratuita e inédita.



Site atualizado

Olá, nosso site recebeu uma nova atualização e por conta disso, alguns artigos ainda estão sendo atualizados. Dependendo do conteúdo que você procura, poderá encontrar imagens e trechos de códigos mal formatados.

Estamos trabalhando para normalizar todos os conteúdos, muito em breve, esse problema não mais existirá.


Comentários