04/08/2015

Aula 25 - Mini Games Parte 1

  Olá, fãs de RPGs e coisas legais. Venho aqui hoje com mais algumas aulas sobre RPG Maker 2003. Desta vez o foco serão alguns mini games que vocês podem colocar dentro de seus jogos para deixá-los mais interessantes. Vou passar 4 tipos de mini games (um em cada postagem), e disponibilizar os dois charasets usados nos exemplos. Espero que gostem :)

-Tiro ao Alvo-

   Como é do meu costume, vou começar pelo mais complicado: um mini game de tiro ao alvo que vi certa vez em um jogo chamado Jay's Journey. Peguei o jogo para ver como foi feito e estou aqui agora passando passo a passo sua construção.

    Antes de tudo, aqui está o charaset com os gráficos utilizados nessas 4 aulas:


   Primeiramente, faça um mapa simples como o da figura abaixo (ele tem tamanho 20x20 e usa o chipset Dungeon):


   Depois, usando um tile de passagem livre (como o centro do circulo mágico) preencha os cantos de onde os alvos serão posicionados (isso é necessário porque, caso não seja feito, os alvos ficarão 'presos' dentro das paredes). O mapa ficará parecido com a figura abaixo:


   A seguir, coloque um NPC atrás do balcão (não é preciso colocar falas nele - veremos o porque a seguir). Escolha um gráfico, e deixe como 'Apertar Tecla' e 'Mesmo Nível do Herói".

   Em seguida, crie um evento SEM GRÁFICO mas também como 'Apertar Tecla' e 'Mesmo Nível do Herói" na FRENTE do NPC (sobre o balcão). Será neste evento que estarão as falas do NPC, para quando o personagem apertar a tecla atrás do balcão o evento iniciar (caso queira colocar o evento no NPC, não esqueça de mudar o chipset do balcão na aba Chipset do Database, selecionando Chip Superior, e mudando o Atributo Conter - colocando um losango no balcão).

   Vamos para o evento. Antes de tudo, coloque uma fala para o vendedor, dizendo o preço para se jogar e perguntando se o jogador quer tentar (use as opções 'Gráfico de Rosto', 'Exibir Mensagem' e 'Esperar' para isso). A seguir coloque uma escolha para o personagem usando a opção 'Mostrar Escolhas' (uma escolha simples de SIM ou NÃO - não se esqueça de colocar alguma fala do vendedor caso se escolha NÃO).

   Na parte do SIM, primeiramente crie uma condição (use a opção 'Condição If - Fork' e marque a opção 'Exceção Possível'). Na opção, marque a opção Dinheiro, coloque o preço para se jogar e escolha Maior na caixa ao lado. Na exceção, coloque alguma frase do tipo "Você não tem dinheiro suficiente".

   Em seguida, usando a opção 'Mudar Quantia em Dinheiro', reduza o valor de acordo com o preço para jogar. Depois, escolha a opção 'Impedir Menu Principal' e marque a opção Proibir Menu.

   Agora crie um switch novo e dê o nome de Acesso ao Jogo (deixe em ON). Depois basta colocar alguma fala do vendedor explicando como funciona o jogo e pedindo ao jogador para ir até a linha de tiro (não esqueça de criar uma nova página de evento dentro desse, marcando o switch Acesso ao Jogo e colocando uma fala no vendedor do tipo "Você já pagou" (senão o jogador correrá o risco de ter que pagar outra vez caso fale com o vendedor - faça o mesmo na saída do local, pra impedir o jogador de sair sem jogar após pagar). A tela ficará assim:


   Na pequena abertura antes da linha de tiro, crie um evento com o gráfico da parte do balcão que falta, e deixe como 'Apertar Tecla' e 'Mesmo Nível do Herói'. Como mostra a figura abaixo:


   Agora crie uma nova página neste evento, marcando o switch Acesso ao Jogo, e deixe como 'Ao Toque do Herói' e 'Abaixo do Herói'. Primeiro, vá em 'Movimento de Personagem' e escolha Passo Acima (em Object deixe Herói). Em seguida, crie uma variável chamada Alvo - Pontos e deixe ela com valor 0 (Setar - coloque o valor zero no campo Setar). Em seguida, usando a opção 'Operações de Timer', marque a opção Selecionar e coloque um tempo de um minuto. Clique em Ok, depois escolha novamente a opção 'Operações de Timer' e marque desta vez a opção Iniciar. Clique em Ok. A tela ficará assim:


   Por fim, crie um switch chamado Tiro ao Alvo - Start (ele iniciará o jogo). Crie uma terceira página neste evento, deixe novamente o gráfico da parte do balcão, 'Apertar Tecla' e 'Mesmo Nível do Herói', e marque o switch de início do jogo (Tiro ao Alvo - Start). A tela ficará assim:


   Agora precisamos criar os alvos. Use o gráfico do alvo contido no charaset Crown7, deixe como 'Processo Paralelo', 'Mesmo Nível do Herói', e em Selecionar Gráfico deixe como 'Fixo/Com Movimento'. Marque também o switch Tiro ao Alvo - Start.

   No jogo teremos 3 linhas de alvos: os da frente se moverão devagar, os do meio se moverão normalmente, e os de trás se moverão mais rápido - e serão 3 alvos de cada lado que se moverão até atrás da parede do outro lado da tela e depois voltarão para a parede de onde sairam (isso se repetirá até o tempo se esgotar).

   Faremos primeiro um alvo da linha da frente: Após deixar como foi especificado, na parte Tipo de Movimento (abaixo do gráfico) escolha 'Por esta Rota', deixe na Frequência 8, e clique no botão 'Editar Rota'. Dentro da opção, crie a rota da seguinte maneira (ela pode variar dependendo do mapa criado - vou mostrar para o mapa que foi criado no exemplo): Escorregar (Iniciar), Passo a Direita (19 vezes), Esperar um Momento (3 vezes), Passo a Esquerda (19 vezes), Esperar um Momento (3 vezes). Clique em Ok.

   Agora crie no campo de eventos desse alvo uma variável chamada Alvo 1 (numere a variável, pois você terá que criar outras 5 - uma para cada alvo), em Operação deixe Setar, marque a opção Herói, escolha Este Evento e Coordenada X. Para terminar, na parte Velocidade de Movimento, escolha '4:Velocidade Normal'. A tela ficará como na figura abaixo:


   Copie e cole outro alvo como esse do outro lado da linha de tiro (mas na mesma linha) e não esqueça de mudar a variável (crie outra chamada Alvo 2). Para os alvos do meio, faça a mesma coisa que foi mostrada, mas na parte Velocidade de Movimento, escolha '5: Dobro da Velocidade'. E para os alvos da parte de trás, repita novamente a criação dos alvos e escolha '6: 4 Vezes a Velocidade' (sempre lembrando de mudar a variável - são SEIS variáveis, uma pra cada alvo).

   Complicado? Agora é que vem a parte trabalhosa. Na linha de balcão mais ao norte (onde o jogador irá atirar as flechas), crie um evento EM CIMA do balcão ('Apertar Tecla' e 'Mesmo Nível do Herói' - o restante não importa muito). O evento NÃO deve ter gráfico. Na parte de eventos crie duas variáveis: uma chamada Flecha X (marque Setar, marque Herói, selecione Este Evento e Coordenada X) e outra chamada Flecha Y (marque setar, opção Setar e coloque um valor 8).

   Em seguida, escolha 'Movimento de Personagem', em Object deixe 'Este Evento', Frequencia 8, e crie esta sequência: Olhar para Cima, Mudar Gráfico (aqui escolha o gráfico da flecha no charaset Crown7), Escorregar (Iniciar), e Passo Acima. Marque a opção 'Ignorar se não Puder Mover'. Clique em Ok.

   Coloque uma espera de 0.1 segundo e crie uma condição IF com exceção (na condição, selecione Variável, escolha Alvo 1, e abaixo selecione Variáv, escolha Flecha X e deixe como Igual). Em seguida coloque um som usando a opção 'Reproduzir Efeito Sonoro' e, usando a opção 'Mudar Variável' (a mesma usada para se criar as variáveis) escolha a variável Alvos - Pontos, marque em Operação a soma, e embaixo deixe Setar com um valor 1. Agora, repita o passo anterior (sem o tempo de 0.1 segundo) dentro da exceção do IF (mantenha a mudança da variável em 1 ponto e escolha a variável Alvo 2).

   Agora, dentro da segunda exceção vamos criar a pontuação dos alvos do meio. Comece usando a opção 'Movimento de Personagem', deixando Object como 'Este Evento', Frequência 8, e escolha Passo Acima (não precisa marcar nenhuma opção abaixo). Depois coloque uma espera de 0.1 segundo, e crie uma condição IF com exceção (aqui repita os passos dos alvos da frente, escolhendo as variáveis Alvo 3 e Alvo 4, mudando o efeito sonoro se quiser, e colocando 2 pontos ao invés de 1).

   Para os alvos da linha de trás, na segunda exceção dos alvos da linha do meio repita o procedimento do parágrafo anterior (mas mudando as variáveis para Alvo 5 e Alvo 6, mudando o efeito sonoro se quiser, e colocando 5 pontos ao invés de 2). Por fim, na segunda exceção dos alvos de trás, usando a opção 'Movimento de Personagem', deixe Object como 'Este Evento', Frequência 8, e escolha Passo Acima (não precisa marcar nenhuma opção abaixo) e coloque uma espera de 0.1 segundo.

   Para encerrar, no final do evento (última linha), usando a opção 'Movimento de Personagem', deixe Object como 'Este Evento' e Frequência 8, e escolha Escorregar (Terminar). Clique em Ok. Coloque uma espera de 0.1 segundo. Depois novamente use a opção 'Movimento de Personagem' ('Este Evento', Frequência 8), e escolha Mudar Gráfico (desta vez escolha o gráfico vazio em Crown7). Clique em Ok. Por fim, escolha a opção 'Mudar Local de Evento', selecione 'Este Evento', clique em Por Variável, e coloque nos campos as variáveis Flecha X e Flecha Y.

   Ao terminar o evento, copie e cole ele por toda a extensão do balcão (o evento é o mesmo para todo o balcão, não se preocupem). O evento ficará como na figura abaixo (parte do evento):


   Agora, a única coisa que falta é o evento de término do jogo e entrega dos prêmios. Para isso, crie um evento no canto superior esquerdo do mapa, marque o switch Tiro ao Alvo - Start, E TAMBÉM Tempo I (deixe aqui tudo zerado). O evento deve ser 'Início Automático' e 'Abaixo do Herói' (sem gráfico).

   Para começar, coloque o vendedor falando algo como "O tempo acabou", depois use a opção 'Tonalidade de Tela' para escurecer a tela (deixe os três primeiros valores em zero). Em seguida, deixe em OFF os switches Tiro ao Alvo - Start e Acesso ao Jogo. Use a opção 'Movimento de Personagem' (Object - 'Herói') e escolha Olhar Acima, e use a opção 'Impedir Menu Principal' e marque a opção Permitir Menu. Teleporte o personagem pra frente do balcão do vendedor e use a opção 'Tonalidade de Tela' para deixar a tela normal (100 nos 3 primeiros valores).

   No jogo que usei como exemplo, o jogador ganha dinheiro correspondente à quantidade de pontos ganhos. Neste caso, faço o vendedor anunciar a pontuação (usando \v[número da variável] - "Você conseguiu \v[N] pontos.") e depois uso a opção 'Mudar Quantia em Dinheiro', escolho Adicionar Valor, marco a opção Variáv e seleciono a variável Alvos - Pontos. Assim o jogador ganha em dinheiro a mesma quantidade de pontos alcançada (por exemplo, se fizer 32 pontos no jogo, ganha 32 em dinheiro). Você pode simplesmente mostrar os pontos, sem prêmio em dinheiro.

   Em adição, eu coloquei uma condição sem exceção onde, caso o jogador faça cem pontos, ganhará também um item. Para isso, na opção 'Condição IF - Fork' marque Variável, escolha Alvos - Pontos, Setar com valor 100, e deixe embaixo como Igual ou Acima. Depois crie OUTRA condição sem exceção dentro dessa e dentro dela crie um switch chamado Prêmio Especial e deixe em OFF. Coloque uma fala para o vendedor (dando o prêmio), depois adicione o item ('Adicionar Item') e coloque o switch como ON. A tela ficará assim:


   E a tela do editor do jogo ficará assim:


   Como podem ver, são muitos eventos. Que tal testarem agora o jogo e verem se funcionou? Espero que tenham gostado da aula, e esperem pelos outros 3 mini games (são bem mais simples do que este). Até a próxima o/

Nenhum comentário:

Postar um comentário