Construindo um jogo de plataforma - in Portuguese

2

Index

Stats

12,867 visits, 34,307 views

Tools

Translations

This tutorial hasn't been translated.

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 16 Feb, 2012. Last updated 19 Feb, 2019

Antes de prosseguirmos, experimente modificar as propriedades do comportamento Platform para o objeto Player, eveja como eles afetam o Tim.

Para fazer isso, selecione o objeto Player através da Projects Bar ou Objects Bar, do lado direito, e vejas as opções abaixo na ‘Properties Bar’ do lado esquerdo e as modifique da forma que quiser.

Outra mudança que você pode experimentar é a da velocidade da animação do objeto PlayerImages. Para isso, selecione o PalyerImages, da mesma forma como dito sobre o Player e, na Properties Bar, clique em ‘Edit’ ao lado de ‘Animations’.

O editor de texturas se abrirá, mas você poderá perceber no canto esquerdo da tela o seguinte:

Basta mudar os valores para ver como afetam o Tim.

Parte 2: Pontuação

Em jogos de plataformas, a pontuação, geralmente, precisa levar em conta lugares em particular onde eventos acontecem. Antes de lidarmos com isso, vamos utilizar o seguinte esquema de pontuação:

1. Tim ganha pontos quando pula de piso para piso:

-- +1 para o primeiro

-- +2 para o segundo

-- +7 para o último

2. Uma pontuação de 25 é necessária para passar ao próximo nível.

3. Ele ganha pontos quando pula para um piso acima, não para um abaixo.

4. Ele tem 3 pontos de vida no começo e perde 1 a cada vez que sair do layout.

5. O game termina quando a saúde chegar a 0.

Logicamente, precisamos de algo pra nos dizer em que piso Tim está, para assim darmos os devidos pontos. Também temos que dizer quando o Tim está se movendo para cima ou para baixo.

Primeiro, vamos criar duas variáveis globais que vão guardar a pontuação e a saúde de Tim, e dar à elas seus valores iniciais. Na Event Sheet, clique com o botão direito, em uma área fora dos eventos que já estão lá, e clique em ‘Add global variable’.

Você verá esta janela:

Em ‘name’, digite score, deixe ‘Type’ como ‘Number’ e o valor inicial (Initial value) como 0.

Repita o processo, só que agora coloque health em ‘Name’, deixe ‘Type’ como ‘Number’ e o valor inicial (Initial value) como 3.

Quando Tim cair e sair do layout, reaparecendo na parte de cima dele, o score tem que ser zerado e o health diminuído de 1. Devemos adicionar um evento para isso . Só que nós já temos um que utiliza a condição “Is outside layout” (está fora do layout). Nós precisamos adicionar à ele as ações que alterarão o score e o health. Então, busque pelo evento:

Player -> Is outside layout -> Player -> set position to (300,700)

E adicione mais duas ações:

Add action: System -> Subtract from. Você verá a seguinte janela:

Em ‘Variable’ escolha ‘health’ e em ‘Value’ digite 1.

Add action: System -> Set value -> em ‘Variable’ escolha ‘score’ e em ‘Value’ digite 0.

O evento ficará assim:

Agora, como faremos para dizer que o Tim está indo para cima ou para baixo? Bem, se sabemos o piso que ele está agora e o que ele estava antes, podemos comparar isso atribuindo valores a cada um dos pisos. Se o piso em que está tem valor maior do que o anterior, então ele foi para cima. Do contrário, foi para baixo. E vice-versa.

Para fazer isso, vamos criar variáveis de instância (instance variables) para cada instância do objeto Flooring (em outras palavras, para cada piso que você vê no layout). Siga os seguintes passos:

(1) Vá ao Layout 1 e selecione um piso.

(2) Na Properties Bar, clique em ‘Add / edit' em ‘Edit Variables’, e a janela de variáveis abrirá.

(3) Clique na cruz verde (Add), e na janela 'New instance variable'

(4) digite 'floor' para 'Name' e clique 'OK' (não mexa nos demais).

Click em 'Add' de novo e coloque uma segunda variáveis de nome ‘points’' (não mexa nos outros campos).

Você deve ver as variáveis na Properties Bar:

Vamos ajustar os valores de 'floor' e 'points' para o primeiro piso. Selecione-o e mude os valores das variáveis para 1:

Selecione o segundo e mude para '2' os valores das variáveis. No último, coloque '3' para 'floor' e '7' para 'points'.

Com isso, nós poderemos saber se o Tim sobe ou desce checando o último piso que ele acabou de passar. Para isso, vamos criar uma variável global para guardar o valor do piso que ele passou. Vá em Event sheet e clique com o botão direito fora de outros eventos e clique ‘Add global variable’. Em ‘name’ digite prevFloor (deixe o ‘default type’ como 'Number' e o ‘initial value’ como 0).

Quando Tim cair para fora do layout, nós zeramos o valor do 'prevFloor' no evento Player -> Is outside layout. Vá até ele e adicione a seguinte ação

Action: System -> Set value -> prevFloor: 0

Agora podemos utilizar isto para dar ao Tim os pontos de cada piso que ele pula (e permanece). Mas, como dizer ao jogo em qual piso ele pulou?

Bem, nós adicionamos a variável de instância 'floor' para 'Flooring' que corresponde ao andar do piso. Então, uma vez que o Player chega no piso, nós podemos testar o valor e aumentar a pontuação de acordo com a variável 'points' do piso. Seria algo como:

Condition: Flooring -> Compare instance variable: floor = 3

Action: System -> Add to global variable -> 'score' -> Flooring.points

NÃO ADICIONE O EVENTO ACIMA!

Também teríamos que fazer mas dois eventos iguais para cada piso. Só que o Construct 2 pode juntar os três eventos em um: nós só precisamos adicionar o evento “Is overlapping’ em Player | Platform On landed:

Botão direito no evento Player | Platform On landed e clique em ‘Add another condition’:

Player -> (Collisions) Is overlapping another object -> Flooring

  • 2 Comments

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