Opa! Atendendo à duvida do user Ebaile, resolví fazer este tutorial explicando um sistema de vôo como este:
Novo vídeo feito por Shaka:
Considerações iniciais:
Tópico Antigo:
Sistema de Vôo (Invocar aeronave)
Este sistema é demonstrado nos primeiros minutos do vídeo no primeiro Spoiler. Sua grande vantagem é o fato de o jogador ficar impossibilitado de iniciar outros eventos enquanto não sair da condição de Vôo\descer do transporte.
O foco deste sistema são os jogos de Dragon Ball, mas esta não é sua única e exclusiva aplicação.
Com algumas modificações e criatividade, pode ser utilizado até mesmo em um jogo de Avatar (Qualquer um dos dois).
Resumindo a linguagem do rm2k3, tudo o que se deve fazer é definir uma técla para que o veículo aéreo apareça "em cima" do herói, que seja utilizado por ele de forma instantânea, e que desapareça após seu uso.
Vamos por a mão na massa:
Serão necessários:
> 4 variáveis: "Tecla de vôo", "mapaID", "HeróiX" e "HeróiY"
> 3 Eventos em processo paralelo: "iniciar Vôo", "Terminar vôo" e "Coordenadas herói" (este último pode ser feito tanto na database quanto nos mapas em que se aplicarão o sistema)
>2 Charsets: 1 feito unica e exclusivamente de fundo branco e outro para ser seu personagem voando (Facultativo)
Primeiramente, vamos ao evento das coordenadas do herói:
Tanto no database quanto no mapa, o processo é o mesmo: Na edição do evento, selecione "Mudar variável", e relacione a variável "mapaID" com o valor do mapa em que o herói se encontra. Faça o mesmo com as variáveis "HeroiX" e "HeroiY", relacionando-as a seus respectivos valores, conforme a imagem a seguir (Por favor, apareça) :
O evento pronto deve ficar assim:
Editando o evento "Iniciar vôo":
Nas opções do evento, selecione "Definir teclas adicionais". Vai aparecer uma janela na qual você deve selecionar a variável das teclas (no caso, utilizaremos a variável "Tecla de vôo") e as teclas em sí, com seu respectivo valor à frente. Desmarque todas as teclas, deixando marcado apenas a opção "Shift(7)", conforme a imagem:
Agora (embora eu não esteja certo de que isto é obrigatório) crie uma Fork Condition, sem ELSE case, e configure a condição de modo que a variável "Tecla de vôo" seja igual a 7. Segue a imagem:
Aqui começa o evento de verdade, quando o jogador será perguntado se deseja realmente iniciar o vôo ou desistir da ideia.
Nas opções de evento, selecione "Mostrar escolhas". As opções do jogador devem ser algo do tipo "Iniciar/Terminar vôo" e "Cancelar".
No primeiro caso, mude o charset do veículo aéreo para o desejado (um dragão, seu personagem levitando etc). Depois, selecione "Origem do veículo" e relacione as variáveis IDmap, coordenada X, coordenada Y às coordenadas "mapaID","heroiX" e "heroiY" respectivamente:
Até aqui, fizemos com que o veículo aparecesse em cima do herói. Para fazer com que ele entre imediatamente nele, selecione dentre as opções de evento "Usar veículo- Aeronave". Concluímos o segundo evento. Ele deve ficar assim:
Editando o evento "Terminar vôo":
Dentro do novo evento, crie uma fork condition COM ELSE case, e configure-a para que o herói esteja utilizando o veículo "Aeronave", conforme ilustrado:
Deixe o primeiro caso em branco e vá direto para o ELSE case. Lá, mude o charset do veículo para o charset composto apenas por fundo branco, para que ele "Desapareça". Em seguida mude a Origem do veículo para um lugar onde o jogador não possa esbarrar nele acidentalmente. No meio da água ou no panorama de fundo, por exemplo. O evento deve ficar assim:
Pronto! Seu personagem pode sair voando livremente pelo mapa, mas cuidado: Não é recomendado deixar que o personagem voe em qualquer lugar. É opcional (e recomendada) a criação de um switch condicional de disparo para o evento "Iniciar vôo". Assim você pode controlar em quais mapas o herói deve poder voar.
Demo:
Abrass
[Edit]: Tutorial reformulado. Imagens upadas em outro site. Qualquer problema, mande um MP sem dó nem piedade.
Se der algum erro referente ao arquivo "Invisível" na hora de abrir o jogo, verifique se o nome do arquivo na pasta "charset" bate com o nome do arquivo especificado no erro. Renomeie-o se necessário.