Seleção de personagens por eventos
Demo: Mega Man
Criador: Red
Plataforma: RpgMaker Xp
Demo: Mega Man
Criador: Red
Plataforma: RpgMaker Xp
Eae, pessoal do santuario tudo ok?
Depois de muito tempo fora do maker eu estou de volta. E pra começar vou demostrar como criar uma tela de seleção (por eventos) para o seu jogo.
Obs. nesse tutorial vou usar 4 personagens mas você pode adapta-lo facilmente para quantos personagens quiser.
A primeira coisa a se pensar, é como funcionará o cursor. No caso desse tutorial ele deve se mover na horizontal, ou seja, quando o usuario aperta a seta para direita o cursor vai para o personagem da direita, quando o usuário aperta a seta para esquerda o cursor vai para o personagem da esquerda, mas quando o cursor estiver no ultimo personagem e o usuário apertar para direita o cursor deve voltar para primeiro personagem.
Para resolver esse problema vou usar uma operação que talvez não seja conhecida por todos, mas é muito usada em liguagens de programação, essa operação é o modulo ou resto (%).
O que é o modulo? (explicação sobre o modulo)
"Pode-se dizer" que essa operação devolve o valor do resto da divisão de dois números inteiros, veja o exemplo:
3 % 2 = 1 (o resto da divisão entre 3 e 2)
3 % 4 = 3 (o resto da divisão entre 3 e 4)
-1 % 4 = 3
Eu escrevi "pode-se dizer", por que existe uma divergência no caso de números de sinais diferentes, em algumas linguagens (ex: C) -1 % 4 = -1 em outras (ex: python) -1 % 4 = 3. Esse ultimo também é o caso dos eventos do RPG maker XP. (fim da explicação sobre o modulo)
Agora que todos já sabem o que é modulo vou continuar o tutorial.
Vamos criar uma variável chamada "selecao" e uma condição que é ativada quando se aperta a seta para direita. Dentro da condição coloque duas instruções, a primeira soma 1 ao valor da "selecao" e a segunda pega o resto da divisão da "selecao" por 4.
- Spoiler:
Veja o que acontece com o valor da "selecao":
selecao = 0 (valor de inicio)
aperta "->" selecao = ( (selecao + 1) % 4)
selecao = 1
aperta "->" selecao = ( (selecao + 1) % 4)
selecao = 2
aperta "->" selecao = ( (selecao + 1) % 4)
selecao = 3
aperta "->" selecao = ( (selecao + 1) % 4)
selecao = 0
Agora basta associar a posição do cursor a variável "selecao", e o problema do cursor voltar esta resolvido, mas não esqueça de fazer o mesmo para esquerda "<-"
- Spoiler:
Veja o que acontece com valor da "selecao":
selecao = 0 (valor de inicio)
aperta "<-" selecao = ( (selecao - 1) % 4)
selecao = 3
aperta "<-" selecao = ( (selecao - 1) % 4)
selecao = 2
aperta "<-" selecao = ( (selecao - 1) % 4)
selecao = 1
aperta "<-" selecao = ( (selecao - 1) % 4)
selecao = 0
Feito isso, falta agora associar a imagem do cursor ao valor da selecao, veja como:
Primeiro coloque as imagens dos personagem na tela (acho que todos sabem fazer isso), depois crie 4 condições uma que é ativada quando o valor de selecao for = 0 e as outras quando for = 1 , 2 e 3
- Spoiler:
Dentro da primeira condição coloque uma instrução para mostrar a imagem do cursor sobre o primeiro personagem, na segunda condição para mostrar o cursor sobre o segundo personagem e assim até a ultima.
Agora vou criar um botão para selecionar o personagem (escolhe o personagem), e a tela de seleção estará pronta.
Para isso crie um condição que é ativada quando a tecla C (enter) é apertada, dentro dela coloque um teletransporte para outro mapa
e delete todas as imagens que vc usou...
- Spoiler:
nesse novo mapa crie mais 4 condições, a primeira é ativada quando selecao = 0, a segunda quando selecao = 1 e assim até selecao = 4. Dentro delas coloque uma instrução para mudar o grafico do personagem (ou mudar grupo, mudar nome ou o que for necessario).
E, é isso, espero que gostem do sistema, expliquei somente o necessário para montar o sistema, na demo tem mais alguns detalhes (ex: peq. animação quando personagem é selecionado) que acho que não há necessidade explicar, mas que deixam o jogo mais apresentavel.
download demo
http://www.4shared.com/file/ArWuyq7b/Project1.html
Última edição por red em Sáb 22 maio 2010 - 20:45, editado 2 vez(es)