Jogador maluco, problemático, olho parado.
- Juntou-se
- 21 de Julho de 2015
- Postagens
- 570
- Soluções
- 3
- Bravecoins
- 2.833
- Área
- Programação
- Motor de jogo
- RPG Maker 2003
Mudar animação quando parado
by Dr.XGB
Plataforma: RPG Maker 2000Autor: Dr.XGB
Dificuldade: Fácil (até demais)
Introdução
Este tutorial foi feito a pedido do membro shadow prince, num tópico que ele postou na área de suporte para RPG Maker 2000 e 2003 (veja o tópico clicando aqui).
Este sistema, resumidamente, faz com que o seu personagem mude de animação quando fica muito tempo parado, muito comum em jogos de plataforma. Daí o personagem volta ao normal quando você o move novamente. Daí, este tutorial vai converter esse sistema em eventos sem nenhuma dificuldade.
Aqui dividirei o tutorial em duas etapas: O evento para fazer o contador, detectando se nenhuma tecla será pressionada por um determinado tempo; e como trabalhar com os gráficos do charset para fazer a animação de espera do herói.
Espero que o tutorial ajude não só o shadow prince, mas também a todos que possuem a mesma dúvida que a dele e/ou querem aprender a fazer novos sistemas e que a lógica utilizada neste tutorial ajude você a criar novas coisas em base do que eu farei.
Etapa 1: Apenas eventos e charsets
A primeira etapa é bem simples, faremos com que certo evento comum conte por quanto tempo o jogador ficará sem pressionar nenhuma tecla direcional. Se o jogador pressionar qualquer tecla direcional, o contador voltará ao zero. Para isso, usaremos uma variável para agir como esse contador e outra pra detectar uma entrada de tecla realizada pelo jogador. Como esse evento ocorrerá constantemente, ele será um evento comum em processo paralelo.
Evento Comum: Stand Time
Condição Inicial: Processo Paralelo
Switch de Ativação: 0001: Stand ON
Código:
<> Variable Ch. [0001: Stand Time] Set, 0
<> CYCLE
<> Enter Password: [0002: KEY] (1,2,3,4 - teclas direcionais, Wait key desmarcado)
<> IF [0002: KEY] - 1 above
<> IF [0002: KEY] - 4 below
<> Comment: Zerar contador se uma tecla for pressionada
<> Stop Parallel Process
<>
: END IF
<>
: END IF
<> Variable Ch. [0001: Stand Time] + 1
<> Wait: 0.1s
<> Comment: O valor da condição fica a seu critério
<> Comment: Cada 10 representa 1 segundo
<> Ex: [0001: Stand Time] = 50 = 5 segundos
<> IF [0001: Stand Time] - 50 above
<> BREAK CYCLE
<>
: END IF
<>
: END Cycle
<> Comment: Mudar Animação do herói após o ciclo
<> Change Hero GFX: (à sua escolha)
<> Change Switch: [0002: Stand Animation] - ON
<> CYCLE
<> Enter Password: [0002: KEY] (a mesma configuração de antes)
<> IF [0002: KEY] - 1 above
<> IF [0002: KEY] - 4 below
<> BREAK Cycle
<>
: END IF
<>
: END IF
<>
: END Cycle
<> Comment: Voltar ao normal quando um tecla for pressionada
<> Change Hero GFX: (padrão do seu herói)
<> Change Switch: [0002: Stand Animation] - OFF
<>
A switch de ativação deste evento comum deve ser ativada quando você quiser que a animação ocorra, normalmente quando o jogador começa a controlar o herói. Em caso de cutscenes, ou qualquer cena que você deseja que essa animação não ocorra, é só desativar esta switch e, ativar depois que o herói voltar a ser jogável.
Assim que a switch da animação se torna ativada, chamaremos um outro evento comum onde ocorrerá tal animação.
Evento Comum: Stand Animation
Condição Inicial: Processo Paralelo
Switch de Ativação: [0002: Stand Animation]
Código:
<> Move Event: Hero, Turn 90º Right
<> Move All
<> Comment: Controle aqui a velocidade da animação
<> Wait: 0.1s
Etapa 2: Animação em Charsets
Agora vamos trabalhar com a manipulação das animações do charset para ser a pose do seu herói.
Baseando-se na técnica utilizada na 1ª etapa, vamos converter essas direções em frames com um ato bem simples.
No RPG Maker, cada direção do evento/herói possui um valor numérico que pode ser facilmente determinado por:
- 0 - Cima
- 1 - Direita
- 2 - Baixo
- 3 - Esquerda
Aplicando no charset:
Daí quando colocar as poses desejadas seguindo esse padrão, pode-se notar que ao invés de um herói girando, teremos uma animação de espera do herói enquanto você não o move pressionando uma tecla direcional.
Baixe a demonstração deste tutorial
Deixarei uma demo mostrando como foram feitos todos estes procedimentos deste tutorial.
MediaFire - Dropbox