O TEMA DO FÓRUM ESTÁ EM MANUTENÇÃO. FEEDBACKS AQUI: ACESSAR

Crie um jogo de plataforma com Arc Engine: Parte 1 – Conhecendo a Ferramenta

Iniciado por MayLeone, 07/02/2015 às 16:09



[box class=catbg]Introdução:[/box]

Oi, bem vindo(a) ao tutorial de como criar um jogo de plataforma utilizando a Arc Engine para RPG Maker VXACE.
Eu já havia criado no passado uma série de tutoriais com o mesmo propósito só que com relação ao RPG Maker XP. Desta vez o tutorial se trata de como criar um jogo de plataforma com a Arc Engine, uma ferramenta poderosa criada por Khas, que simula perfeitamente gravidade no RMVXACE, fazendo com que a engine se torne uma outra alternativa para criar jogos de plataforma para computadores.
Para esta série de tutoriais é logicamente recomendável que você tenha em seu projeto inserido os seguintes scripts:

Arc Engine por Khas

Script de colisões  por Fogomax

E preciso que você insira no editor de scripts do seu projeto abaixo do Arc engine o seguinte código:

class Game_Character
attr_accessor :ax
attr_accessor :ay
end


Recomendo também que para seguir este tutorial, criar um projeto de testes apenas para aprender como alguns comandos na engine funcionam, certo?
Após tudo isso, podemos conhecer a ferramenta mais a fundo, vamos lá?

[box class=catbg]Conhecendo o Arc Engine:[/box]

Para você ter uma noção de como a engine é excelente, você pode ver com mais detalhes seu funcionamento neste vídeo que o próprio Khas enviou sobre o funcionamento da mesma.
Eu também criei um projeto utilizando a ferramenta, se quiser dar uma olhada no que eu consegui fazer utilizando a Arc engine, assista o vídeo aqui.

[box class=catbg]Constantes configuráveis:[/box]
Pois bem, agora que tens certeza de que deseja iniciar um projeto com a engine, vamos aprender a configurar a física do jogo através de alguns comandos padrões dentro do script:
Abre o script da Arc Engine no editor de scripts e observe alguns comandos de configurações. Alguns são auto-explicativos e dispensam apresentações, mas gostaria de ressaltar aqui alguns comandos de configurações que julgo serem importantes a ponto de serem mencionados:

Na linha 74 do script você encontra a constante de gravidade, que por padrão está em 0.6
Alterando este valor, você altera a velocidade em que o personagem "cai" após pular. Se por exemplo, você aumentar esta constante para um valor como 0.9 o personagem irá planar rapidamente, ou seja, irá executar o pulo e rapidamente irá "cair". Se você tentar alterar este valor para 0.1, por exemplo, após pular, o personagem irá demorar a cair, como se estivesse flutuando. Portanto, esta constante é responsável pela gravidade e resistência ao ar do personagem.

Linha 98 você tem a constante referente ao impulso do pulo do personagem, ou seja, quanto menor for seu valor, mais alto o personagem irá pular.
E não se confunda... Como a constante leva um valor negativo (por trabalhar com o eixo y do mapa) quanto mais próximo do zero o número for, maior ele será.
Então se você alterar essa constante para -1200.0, o personagem pulará muito alto, enquanto se o valor for por exemplo, -500.0, o personagem quase não sairá do chão.
Eu deixo o valor em -900.0, mas daí cabe à você selecionar o melhor valor para corresponder as expectativa do seu jogo.

Logo abaixo na linha 102 você encontra a constante de impulso de pulo, ou seja, aquela situação de que quando você pega um pouco de distância e depois tenta pular com mais força para alcançar locais ou objetos mais altos. Pois então, essa constante trabalha com este tipo de impulso ao pular, e quanto maior o valor da constante, menor o impulso.
Pois então, eu deixo este valor em -25.0

Nas linhas 210, 216 e 220, você poderá alterar respectivamente a altura, largura e massa padrão do personagem.
Isso é muito importante no caso de colisões com as  plataformas no mapa, mas com relação à outros objetos e obstáculos no jogo, isso não irá ter tanta relevância e em breve você saberá o porquê.

Gostaria de dizer também que na linha 2781 do script, você poderá alterar  tecla de ação de pulo do personagem, que por padrão é a tecla A no teclado (X no RPG maker).
if Input.trigger?(:X)

Troque "X" dentro dos parênteses para a tecla que deseja ser o botão de pulo no jogo.

Linha 237: Nesta linha você poderá habilitar(false) ou desabilitar(true) o editor de física da Arc engine, porém vamos ver como isto funciona na aula seguinte.

Pois bem, estes são os comandos de configurações que eu achava necessário explicar, o restante é auto-explicativo ou se trata de configurações de foco da câmera no jogo e outras coisas que você pode ir configurando conforme a sua necessidade.

[box class=catbg]Comandos de comentários:[/box]
Eu gosto bastante da Arc engine pois com ela podemos configurar diversas coisas interessantes e importantes no jogo, apenas utilizando o comando de evento "comentário".
Vou explicar aqui alguns comandos simples que podem tornar o jogo mais dinâmico:

[width X] => Trata-se de configurar a largura do evento (em pixels), apenas troque "x" dentro dos colchetes, para o valor da altura do evento.

[height X] => Trata-se da altura (em pixels) do evento.

[weight X] => Estabeleça um "peso" para o evento, assim ele terá mais resistência à gravidade, quanto menor for seu peso.

[event_trigger X] => Com este comando, você pode criar uma colisão entre um evento e outro. Apenas troque "x" pelo ID do evento que ele irá colidir e abaixo desse comando adicione o que irá ocorrer caso esta colisão ocorra.

[deny_gravity] => Adicionando esse comando no evento, o mesmo não irá "cair" por conta da gravidade.
Isso é muito útil para plataformas que ficam suspensas no ar, ou para eventos de inimigos voadores, por exemplo.

[pushable] => Com este comando é possível fazer com que o personagem possa "empurrar" o evento para qualquer direção no mapa.

[sticky] => Este comando é muito útil para criar plataformas que se movimentam pelo mapa a fim de levarem o personagem sobre elas.
Este comando faz com que o evento "grude" no personagem.

[apply_friction] => Aplica fricção entre o evento e o personagem, ou seja, o personagem meio que fica "encostado" no evento com fricção.
Muito útil para utilizar em eventos com o comando "pushable" (ler mais acima).
Teste criar um evento com o comando "pushable" primeiramente sem a fricção, e veja que ao empurrar o evento, ele vai à direção à frente do player com muita rapidez. Agora experimente aplicar a fricção com este comando e perceba que o toque do player ao evento é mais suave e preciso.

[turtle] => Ao adicionar este comando no evento, o mesmo irá andar pelo mapa de um lado para o outro sem parar. Normalmente este comando é utilizado em inimigos no mapa que ficam vagando pelo mesmo.

[block_event] => Adicionando este comando em determinado evento, o mesmo irá "bloquear" outros eventos no mapa, ou seja, irá criar um limite de direção em qualquer outro evento no mapa, ao tocar num evento com este comando de bloqueio.

[groundpound] => Este comando faz com que outros comando sejam ativados no evento, se o personagem realizar um "groundpound" no mesmo, ou seja, pular sobre o evento e depois pressionar para baixo logo em seguida.
Eu gosto de utilizar este comando em eventos de "pedras" nas fases, onde o personagem só conseguirá quebrá-las para passar, se pisar nelas e depois ir com força para baixo.

[stop_player] => Adicione este comando em eventos que você gostaria que parassem os movimentos do jogador, como passagens bloqueadas ou simplesmente pontos de textos para introdução ou qualquer outro fim.

[deny_player] => Esse comando fará o evento "ignorar" o jogador.
Os comandos a seguir serão referentes ao evento "negar" alguma posição do jogador:

[deny_up], [deny_down], [deny_right], [deny_left]

Respectivamente: Negar o jogador quando este está acima do evento, negar quando está abaixo do evento, negar quando está à direta do evento e negar o jogador quando ele está à esquerda do evento.
Por exemplo, você cria um evento com "espinhos". O jogador não sofrerá danos se encostar aos lados ou abaixo do mesmo (é só negar o player na esquerda, direita, e abaixo do evento) mas quando o jogador estiver acima dos espinhos, ele sofrerá danos (ou seja, não negar o player quando ele estiver acima do evento).
Em resumo essa é a ideia desses comandos, e se restou alguma dúvida quanto a eles ou outros comandos aqui apresentados, não se preocupe, pois nos tutoriais posteriores iremos utilizar cada um deles com mais informações sobre os mesmos e você os verá em ação.

Por fim, esta parte do tutorial chegou no seu final, mas não se esqueça... Teremos ainda muitas outras partes deste mesmo tutorial, simplesmente acompanhe todas elas! Até lá!


Citação de: hategum rpg online 07/02/2015 às 17:12
Legal, vou acompanhar  :wow:
Quando sai a parte 2 ?

Essa semana ainda, se tudo der certo!
Já tenho algumas partes desses tutoriais escritos, mas como não está em ordem, irei deixar para postar depois.

Citação de: MayLeone online 07/02/2015 às 18:50
Citação de: hategum rpg online 07/02/2015 às 17:12
Legal, vou acompanhar  :wow:
Quando sai a parte 2 ?

Essa semana ainda, se tudo der certo!
Já tenho algumas partes desses tutoriais escritos, mas como não está em ordem, irei deixar para postar depois.

:*-*: posta ai essas partes que vc tem tudo junto mesmo ué.


@hategum rpg:
Eu quero postar tudo numa ordem específica para que tudo fique mais organizado, porém a parte 2 desse tutorial já saiu, veja: http://centrorpg.com/index.php?topic=11162

@Arck:
Obrigada pelo apoio.  :blink:

Citação de: MayLeone online 10/02/2015 às 20:23
@hategum rpg:
Eu quero postar tudo numa ordem específica para que tudo fique mais organizado, porém a parte 2 desse tutorial já saiu, veja: http://centrorpg.com/index.php?topic=11162

:lol: cadê a parte 3!!!