Construindo um jogo de Plataforma - Guia para Iniciantes

3

Index

Tagged

Attached Files

The following files have been attached to this tutorial:

.capx

platform-tutorial-i.capx

Download now 608.15 KB

Contributors

Stats

20,931 visits, 27,876 views

Tools

License

This tutorial is licensed under CC BY 4.0. Please refer to the license text if you wish to reuse, share or remix the content contained within this tutorial.

Published on 30 Apr, 2017. Last updated 25 Feb, 2019

Recapitulando

Isso meio que conclui a primeira parte do tutorial - exceto que vamos fazer mais uma coisa pra tornar o jogo mais fácil de jogar:

Eu acho que você percebeu que se o Tim não consegue cair numa plataforma, ele continua em queda livre (esse é outro comportamento que você recebe junto com o behavior Platform). Se não houver um chão pra impedir a queda, ele vai continuar caindo até sair completamente da área do jogo. Pra evitar que seja preciso executar novamente o layout por conta disso, podemos trazê-lo de volta pra o topo (claro que às custas de um pouco da vida dele, se estivermos trabalhando com pontuação). Fazemos assim:

Condição: Player -> Is outside layout (na seção 'Size & Position')

Ação: Player -> Set position -> X: 370, Y: 100

Isso é suficiente pra que quando ele cair pra fora do jogo, ele seja transportado de volta pra o piso mais abaixo - mas a menos que a gente também mude a animação do PlayerImages, ele vai parecer que está caindo mesmo depois de ter sido transportado pra o chão de novo. Então, vamos mudar a animação para 'Standing' - só que também precisaremos cobrir a situação em que o Tim caia enquanto a seta do teclado ainda está sendo pressionada, assim ele vai cair correndo.

Isso significa que a animação resultante da condição 'Platform On landed' vai depender de outra condição: se o Player está se movendo ou não. Dois sub-events 'either/or' são necessários:

Primeiro, adicione o event principal:

Condição: Player ->Platform On landed

Depois clique com o botão direito na seta verde no canto mais esquerdo do evento no menu drop-down que aparece, escolha 'Add', depois no sub-menu, escolha 'Add sub-event':

Condição: Player-> Platform: Is moving

Ação: PlayerImages -> Set animation -> "Running"

Agora adicione outro sub-event com a mesma condição:

Condição: Player-> Platform: Is moving -> invert it

Ação: PlayerImages -> Set animation -> "Standing"

... de forma que na sua event sheet, o event principal e seus dois sub-events fiquem assim:

Já que estamos mexendo nisso, vamos dar ao Tim uma expressão de susto enquanto ele cai:

Condição: Player -> Platform: On fall

Ação: PlayerImages -> Set animation -> "Falling"

Bem, esse é o fim da primeira parte desse tutorial sobre Platform. A próxima parte cobre problemas específicos de pontuação em jogos de plataforma, onde é preciso saber a diferença entre diferentes andares e ter pontuações diferentes para eventos que acontecem em cada um deles.

Antes de continuar, você pode querer fazer uns testes nas propriedades do behavior Platform do Player e ver quais os efeitos que essas mudanças causam no comportamento do Tim (e ver como isso torna o jogo mais fácil ou difícil):

Uma outra mudança que você pode testar é na velocidade de execução do PlayerImages (na Properties Bar quando você clica em Animations - Edit, essa opção é exibida em 'Speed' como quadros por segundo).

[page="

Parte 2: Pontuação"]

Parte 2: Pontuação

Nos jogos de plataforma, a pontuação geralmente precisa levar em consideração a localização em particular onde um evento acontece. Antes da gente mexer nisso, aqui está o esquema de pontuação que usaremos para esse jogo tutorial:

1. O Tim ganha pontos conforme ele pula de andar para andar:

-- +1 para o primeiro andar (Numeração Britânica de andares, onde o chão que ele está pisando é o térreo e o primeiro andar é o andar acima - assim como arrayz com base zero ;) )

-- +2 para o segundo andar

-- +7 para o andar do topo (refletindo a dificuldade de chegar lá!)

2. É preciso uma pontuação de 25 para ir para o próximo nível (então o Tim vai ter que continuar pulando entre os andares pra ganhar pontos suficientes).

3. Ele só ganha pontos quando ele pula para um andar acima do que ele está, e não para um andar abaixo.

4. Ele tem 3 pontos de vida pra começar e perde 1 cada vez que ele cai para fora do layout.

5. O jogo acaba quando a vida do Tim chega a 0 ou abaixo disso.

Obviamente, vamos precisar de uma forma de saber em que andar o Tim pisou, pra que a gente possa dar os pontos apropriados pra esse andar. E precisamos de uma forma de saber se o Tim subiu ou desceu de andar.

Primeiro, vamos cirar duas variáveis globais para armazenar os valores variáveis da pontuação e da vida do Tim, e dar a elas os valores iniciais necessários:

Adicione uma global variable (variável global): score (deixe o valor padrão como 'Number' e o valor inicial em 0).

Adicione uma global variable: health (deixe o valor padrão como 'Number' e o valor inicial em 3).

(Se você não tem certeza como criar essas variáveis, veja a página 6 do 'Guia para iniciantes ao Construct 2'.)

O valor inicial da variável score precisará ser reiniciado quando o Tim cair para fora do layout e voltar para o primeiro piso e o valor de health precisará ser diminuído em um:

Agora, como vamos saber se o Tim está subindo ou descendo os andares? Bem, se soubermos qual o andar que o Tim está agora e qual o andar que o Tim estava da última vez que verificamos, podemos comparar os valores: se o valor do andar atual for maior que o andar anterior, ele está subindo, e vice-versa.

Então, vamos primeiro precisar gravar o nível de cada andar. Pra fazer isso, nós definimos instance variables (variáveis de instância) para cada instância do object Flooring (em outras palavras, para cada andar no layout). Isso é explicado no Guia para iniciantes ao Construct 2. Na imagem abaixo, cada item numerado se relaciona ao número de passos nas instruções que o seguem:

(1) Vá para a visualização do Layout 1 e clique no sprite do piso térreo. (2) Na Properties Bar, clique em 'Edit variables: Add / edit', e a janela 'Flooring: Instance variables' abrirá. (3) Clique no ícone 'Add' e na caixa de diálogo 'New instance variable', (4) insira 'floor' em 'Name' e clique em 'OK' (deixando os demais campos com os valores padrão). Não feche a janela 'Flooring: Instance variables' - vamos a proveitar a oportunidade para definir os pontos para cada andar.

Clique no ícone 'Add' novamente e adicione uma segunda instance variable chamada 'points'. (deixe os outros campos como estão.)

Você deve estar vendo estas duas variáveis de instância aparecendo na Properties Bar:

That's set the 'floor' and 'points' values for the ground floor. Now we need to do the same for the other floors. Still in the Layout 1 view, click on the first floor sprite. In the Properties Bar, replace each '0' for 'floor' and 'points' with '1':

Clique no sprite do segundo andar e digite '2' em 'floor' e '2' em 'points'. No andar de cima digite '3' em 'floor' e um poderoso '7' para 'point'.

  • 0 Comments

Want to leave a comment? Login or Register an account!