O Objetivo - Escadas em Plataformas
O objetivo deste tutorial é dar a você, e explicar a funcionalidade de, uma solução simples para criar escadas nas quais você possa subir no Construct 2 para usar em plataformas.
Embora o Construct 2 forneça muitas funções pré-definidas de movimento, eu ainda precisava encontrar uma função para subir em cordas e escadas, e as soluções que eu encontrei eram complexas e usavam variáveis e diversos objetos.
Esta solução requer dois objetos: o objeto do jogador e a escada, e um bloco de evento relativamente simples (tecnicamente é preciso um terceiro objeto, mas é apenas a imagem do jogador).
Os sprites em uso são sprites gratuitos fornecidos pela YoYo Games.
Pré-requisitos
Eu quero manter esse tutorial o mais simples possível, então eu vou presumir que você tenha conhecimento sobre a Events Sheet e todos os fundamentos de criação de um jogo usando o Construct 2. Se você tiver visto o primeiro tutorial e o tutorial de plataforma para iniciantes você deve conseguir acompanhar, embora o tutorial seguinte sobre plataforma também seria uma boa ideia ler.
Eu estou usando a edição gratuita do Construct 2, release 132.
A Configuração
O Jogador
Vamos por partes. Primeiro crie uma room e crie os objetos do jogador e da escada. Lembre-se que para um jogo de plataforma é melhor criar uma forma retangular para o ser o objeto do seu jogador e coloque a imagem do jogador nele.
Depois, eu dei ao Objeto do Jogador (o retângulo) um movimento de plataforma (platformer movement) e configurei o Movimento Padrão (Default Movement) (fica em Behavior>Platform no painel de propriedades da instância) para não (no). Isso é porque a Seta Para Cima faz o jogador pular e nós queremos que em vez disso ele suba na escada. Isso pode ser modificado, se você quiser pular para subir isso também pode ser feito, só que eu prefiro assim.
A Escada
Eu criei o objeto da escada usando uma imagem da parte inferior da escada.
Depois eu fui na animação da escada e adicionei as imagens do meio da escada e do topo dela como novos quadros:
Fazendo isso eu posso deixar a escada do tamanho que eu quiser simplesmente mudando o Frame Inicial (Initial Frame) em cada instância (em Animation, no painel de propriedades da instância) conforme precisar.
Isso significa que eu posso fazer a escada ficar do jeito que eu quiser, enquanto ainda consigo referenciar ela por completo como um único objeto.
Os Eventos
Eu apliquei meus eventos a uma event sheet de Controle (Controller), desta maneira eu posso colocar a escada em qualquer nível.
Movimento
Primeiro, eu adicione o movimento básico de plataforma usando a função de Simulação de controle (Simulate control):
Tudo o que eu quero aqui é esquerda, direita e pular. Como eu disse antes, você também pode deixar a função de pulo ligada na seta para cima e pular para subir na escada.
Subindo
Depois eu adicionei um bloco com o evento de subida. Ele é um pouco maior e faz uso de um bloco Else para ficar o mais simples possível (para usar um bloco else clique dentro do bloco de condição e escolha Add...>Else, se você não adicionar uma condição extra ao bloco else, ele vai contar todas as outras situações)
Então o bloco basicamente deve ficar assim:
IF Up is pressed & Player is on Ladder
THEN Climb Ladder
---ELSE
IF Down is pressed & Player is on Ladder
THEN Descend Ladder
---ELSE
IF No button is pressed & Player is on Ladder
THEN Sit on Ladder
---ELSE
Reset gravity to room normal
O evento faz uso da função Set gravity, que com um objeto com movimento de plataforma normalmente puxaria o objeto para o chão quando ele estivesse fora dele. Ao colocar a gravidade como 0 nós podemos nos mover para cima e para baixo da escada sem cair.
Precisamos usar o bloco final do ELSE para redefinir a gravidade da room para o normal para que o objeto caia normalmente como em qualquer outra circunstância. Nós podemos usar uma variável temporária, mas eu queria evitar variáveis nesse tutorial.
Conclusão
Agora nós temos uma função de escada funcional e simplesmente saindo da escada o jogador vai cair como normalmente.
Eu tenho certeza que existem outros métodos, mas este método funciona bem pra mim. Você já teve sucesso com outros métodos para criar escadas?