Autor Tópico: Sistema de Tiro por Eventos - por Naughty Crusty  (Lida 177 vezes)

0 Membros e 1 Visitante estão vendo este tópico.

Offline brunoalemao

  • Saudades de um tempo que não volta mais...
  • Imortal
  • Antigo
  • *
  • Mensagens: 898
  • Reputação: 35
  • Sexo: Masculino
  • O fim de uma era. O início de uma lenda.

  • Atividade no Fórum
    1.8%
    • A Caverna do Dragão
    • Prêmios
Sistema de Tiro por Eventos - por Naughty Crusty
« Online: 07 de Junho de 2010, 17:42:40. »
Sistema de Tiro por Naughty Crusty


RPG Maker 2000/2003

:: Materiais necessários ::

Ok... Vamos começar... Para montar o seu joguinho de tiro, além do RPGMaker [dãa] você irá precisar de:
-Um charset de um ET ou qualquer que seja o inimigo que você queira
-Um charset de um personagem qualquer, que será o herói
-Um som de tiro, coisa sendo arremessada ou coisa parecida
-Um som para quando o projétil acertar um obstáculo
-Um som do inimigo morrendo
-Um gráfico no chipset de um projétil [uma bala, ou um prato de comida no meu caso ]


--------------------------------------------------------------------------------

:: Lançando o projétil ::

A primeira coisa a fazer é criar um evento no mapa chamado "Revolver" ... Ele irá seguir a posição do herói e irá disparar quando a tecla de decisão for apertada... Por enquanto, deixe o evento em branco... Crie em seguida um outro evento chamado "Check", e deixe-o como Parallel Process. Este evento irá checar a posição do Herói durante todo o tempo... Você irá precisar criar duas variáveis de forma que uma guarde o valor de X do herói e a outra guarde o valor de Y... Para isso crie uma Change Variable [1ª página] e crie uma variável em One>HeroX>Set>Event>Hero>X Coordinate. Repita o procedimento e crie uma variável HeroY, com Y Coordinate... A seguir, você deve fazer um Set Event Place [2ª página] ... Em Event coloque Revolver e em Movement Place escolha By Variable, X coordinate> HeroX, Y coordinate>HeroY... Agora, independente de onde o herói estiver, o evento Revolver estará sempre embaixo dele...

Volte agora para o evento Revolver, e crie uma ação Change Switch, criando um Switch "Revolver" e colocando-o como ON... Assim, quando o jogador apertar a tecla de decisão, o switch Revolver será ligado... Volte no evento Check e crie uma nova página, clicando no botão New Page em cima... Como Event Condition para esta página faça como sendo o Switch Revolver como ON e como Push Key, Below Hero... Deixe em branco... Quando o switch Revolver for ON, o evento revolver não estará mais sob o herói... Volte ao evento Revolver...

Crie uma nova página com a condição do Switch Revolver ON, em Parallel Process e Below Hero... Crie duas variáveis, Rx e Ry, sendo que irão guardar a posição deste evento...Serão a posição do Revolver... Faça duas ações, criando as variáveis Rx e Ry, que serão as coordenadas do evento Revolver, desta maneira: Change Variable>Rx>Set>Event>this event>X coordinate e a outra Change Variable>Ry>Set>Event>this event>Y coordinate... fácil não? Agora, crie 4 Forks independentes entre si, sem Exception Case... No primeiro, faça como condição Event>Hero>Right Face Dir que significa que o herói estará virado para a direita. Dentro deste fork, coloque um Play Sound Effect colocando um som que será tocado quando o projétil for lançado, ou no nosso caso, quando atirarmos o prato... Agora crie um Change Switch para um switch chamado "RightFaceRev". Faça os outros três Forks da mesma maneira, mas fazendo um para Left, outro para Up e mais um para Down... Em cada um crie um switch próprio, sendo LeftFaceRev, UpFaceRev e DownFaceRev respectivamente... Agora, crie mais quatro páginas, sendo que em cada uma deve haver um Switch diferente como Event Condition... Em uma o Switch deve ser o RightFaceRev, na outra o LeftFaceRev e assim por diante... Todas as páginas têm que estar em Parallel Process e Same Level as Hero, e com o Movement Speed como 6: x4 Faster...

Vá na página que tem o RightFaceRev como condição... Em Graphics, escolha o gráfico do projétil, no meu caso, um prato de comida... Agora, acrescente uma ação para mudar o gráfico do herói para uma posição que ele esteja na pose de atirando para a direita em Move Event [2ª página] >Hero>Change Graphic... Faça outro Move Event e escolha Object Character>This Event, Step Right, Play SE [o som do projétil quando atinge algo], Switch OFF - Revolver, Switch OFF - RightFaceRev e deixe marcada a caixa Ignored if cant be moved... O que acabamos de fazer? Bom, se o jogador apertar a tecla de decisão, o evento Revolver vai se transformar na figura do projétil e irá para a direita até encontrar o inimigo ou um obstáculo qualquer, reproduzindo um som e voltando para baixo do herói, começando tudo de novo... Faça o mesmo com as outras três páginas, mudando apenas o Switch RightFaceRev pelo Switch respectivo e mudando a direção que o projetil deve seguir... Dependendo do seu jogo, você deverá mudar também o gráfico do projétil... Caso você tenha usado o gráfico do herói atirando, abra o evento Check e na primeira página acrescente o comando Change Hero Walk GFX trocando o gráfico do herói pelo gráfico original... Agora, você pode até testar o código e ver como já funciona... O herói já consegue lançar o projétil...


--------------------------------------------------------------------------------

:: Fazendo os inimigos ::

O próximo passo é configurar os inimigos... Crie um novo evento para o inimigo, e deixe em On Touch (Event, Hero) e Same Level as Hero... Coloque o gráfico do inimigo desejado... Em Movement Type, escolha Step Toward Hero e Frequency 8... Em Movement Speed deixe em 3: x2 Slower... Agora, em Event Commands, coloque um Change HP [1ª página] e faça [All Party Members>Decrease HP Set> *] Em *, você coloca a quantidade de HP que diminuirá quando o inimigo encosta em você... Se você quiser que seja impossível de o seu personagem morrer, deixe a caixa impossible death DESmarcada... Parece sem sentido, mas o RPGMaker faz com que seja impossível de morrer se estiver desmarcada e possível morrer se estiver marcada... Isso fará com que ao tocar o herói, o herói se machuque quando o inimigo encostar nele... Agora, coloque um Play Sound Effect, com o som que será tocado quando o inimigo "machucar" o herói... Coloque um Flash Event [2ª página] e esolha [Hero>Red 31>Green 0>Blue 0>Power 31> Time 5] e deixe a caixa Wait Until Done marcada...Faça agora mais quatro páginas, cada uma com um Switch como condição [RightFaceRev, Left Face Rev, etc.] deixando-as em Parallel Process e com o restante das configuraçãoes normais, com o gráfico do inimigo também... Começando com a página do RightFaceRev, faça as seguintes ações:

<>Change Variable>Rx>Set>Character>Revolver>X coordinate
<>Change Variable>Ry>Set>Character>Revolver>Y coordinate
<>Change Variable>Mx>Set>Character>this event>X coordinate
<>Change Variable>My>Set>Character>this event>Y coordinate
<>Change Variable>Mx>->1
<>Fork Condition>Variables>Ry>My>same
<>Fork Condition>Variables>Rx>Mx>same
*<>Move Event>this Event>Move Frequency Up(2x)>Fix Direction>Right>Cancel Dir Fixation>Move Frequency Down(2x)
*<>Change Variable>EnemyLife1>+>1
*<>Flash Event>this Event>0.5s>wait until flashing>a cor que vc quiser [2ª página]

Na linha verde acima, temos o uso de uma variável para este inimigo, o EnemyLife1... Você deverá criar uma variável para cada inimigo... O que fizemos aqui? Com estas ações, determinamos que se o herói estiver à esquerda do inimigo e disparar para a direita, o inimigo será "ferido" no ponto à sua esquerda... Se esse ponto for igual às coordenadas do revolver, então as ações com um asterisco na frente irão ocorrer... as variáveis Mx e My marcam a posição do inimigo, sendo que na linha vermelha, se define a posição de Mx e My como sendo a posição ao lado esquerdo do inimigo... Faça o mesmo procedimento para as outras três páginas, mas alterando a linha em vermelho e a direção em vermelho de acordo com a posição:

RightFaceRev: Change Variable>Mx>->1 Right
LeftFaceRev: Change Variable>Mx>+>1 Left
DownFaceRev: Change Variable>My>->1 Down
UpFaceRev: Change Variable>My>+>1 Up

Isso irá mudar o ponto onde o inimigo será "ferido" dependendo da direção de que o herói atirar... Faça agora uma última página para o inimigo, que será quando ele estará morto... Coloque o gráfico do inimigo morto, deixe em Parallel Process e Below Hero e em Movement Type coloque cmo Stay Still... Em Event Conditions, use como condição a variável EnemyLife1 como 8... Assim, quando o inimigo for atingido 8 vezes essa página será iniciada... Se quiser, mude este valor para o valor que você desejar... Coloque agora quaisquer eventos que você queira que aconteçam quando o inimigo morrer, como um Play SE ou uma Battle Animation por exemplo... Depois coloque um Cycle [3ª página] e dentro do Cycle um Wait [2ª página] de 2 segundos... pronto... o nosso inimigo já pode morrer!

Para fazer outro inimigo, basta copiar o evento do inimigo e colar onde você quer o novo inimigo... Aí, você tem que mudar todos os lugares que usam a variável EnemyLife1 para outra nova, chamada EnemyLife2... Para cada inimigo adicional, você cria uma variável dessa... Nosso minigame de tiro se resume basicamente a isso... A seguir, veremos algumas opções extras, que podem ser usadas no minigame...


--------------------------------------------------------------------------------

:: Opcional - Fazendo um botão de pausa ::

Pode ser que você queira colocar um botão de pausa no seu minigame de tiro, e portanto, irei ensinar como fazer isso... Faça uma imagem escrito "Pausa" que será exibida quando o jogo for pausado... Se quiser, use a que está na pasta Pictures do jogo exemplo...

Vá até o mapa e crie um evento chamado "Pausa"... Deixe-o em Parallel Process... Em Event Commands, coloque um Enter Password, com Wait Until Hit Key marcado, e com a tecla Cancel (6) e armazenando em uma variável chamada "Pausa"... Coloque agora um Change Switch criando um switch chamado "Pausa" deixando-o como ON... Agora, quando você apertar a tecla de cancelar, este switch será ligado... Crie uma nova página neste evento, deixando-a em Autostart e com a condição do switch Pausa ON... Coloque um Set Screen Tone [2ª página] deixando todas as barras em 50%, 0 de Time e a caixa Wait Until Done desmarcada... Agora, coloque um Show Picture para a figura de Pausa que fizemos... Coloque Pic. Number como 1 e a posição em X:160 Y:120... Move with Map fica desmarcado, Magnification em 100% e Transparency em 0%... Deixe em Stir e em Aditional Effect não altere nada...

Coloque agora um Play BGM com a mesma música de fundo, porém, em um volume mais baixo... Coloque agora um Enter Password, novamente guardando na variável Pausa e somente com as caixas Wait Until Hit Key e Cancel(6) marcadas... Apague a Picture com o comando [Erase Picture>1] e em seguida coloque um Change Switch para o swicth Pausa -OFF... Coloque novamente um Set Screen Tone para a coloração normal, isto é, tudo em 100%...Para finalizar, coloque um Play BGM com a música de fundo em volume normal...Pronto! O seu botão de pausar funciona!

Tenha em mente que tendo este evento no seu mapa impossibilitará que você acesse o menu com o botão cancelar... Bom, é isso... espero que tenham gostado!

CRÉDITOS: NAUGHTY CRUSTY

Re:Sistema de Tiro por Eventos - por Naughty Crusty

Offline Chokito

  • O mesmo de sempre.
  • Imortal
  • Antigo
  • *
  • Mensagens: 503
  • Reputação: 78
  • Sexo: Masculino

  • Atividade no Fórum
    0%
    • Prêmios
Re:Sistema de Tiro por Eventos - por Naughty Crusty
« Resposta #1 Online: 07 de Junho de 2010, 22:02:06. »
Belo tutorial, mas seria legal anexar umas screens e/ou uma demo. De qualquer foi está legal + Rep.
Modere com moderação.

Re:Sistema de Tiro por Eventos - por Naughty Crusty

Offline Angel Warrior

  • O Anjo Guerreiro
  • Dragão de Prata
  • Antigo
  • *
  • Mensagens: 898
  • Reputação: 47
  • Sexo: Masculino
  • Não apresse o rio... ...ele sabe correr sozinho...

  • Atividade no Fórum
    4%
    • Nexus Maker
    • Prêmios
Re:Sistema de Tiro por Eventos - por Naughty Crusty
« Resposta #2 Online: 07 de Junho de 2010, 23:28:43. »
Perfeito! grande tutorial uma hora dessas eu vou interagir um sistema desses no meu jogo, realmente se eu colocar todos os tutos que tem nessa seção no meu jogo ele ficará senssacional. Parabéns, rep+ você merece. ^^

Re:Sistema de Tiro por Eventos - por Naughty Crusty

Offline brunoalemao

  • Saudades de um tempo que não volta mais...
  • Imortal
  • Antigo
  • *
  • Mensagens: 898
  • Reputação: 35
  • Sexo: Masculino
  • O fim de uma era. O início de uma lenda.

  • Atividade no Fórum
    1.8%
    • A Caverna do Dragão
    • Prêmios
Re:Sistema de Tiro por Eventos - por Naughty Crusty
« Resposta #3 Online: 08 de Junho de 2010, 00:12:03. »
Lembrando que não fui eu quem fez o tutorial. Em breve coloco uma mini demo, pois o sistema esta implantado no meu jogo ^^

Re:Sistema de Tiro por Eventos - por Naughty Crusty

Offline Angel Warrior

  • O Anjo Guerreiro
  • Dragão de Prata
  • Antigo
  • *
  • Mensagens: 898
  • Reputação: 47
  • Sexo: Masculino
  • Não apresse o rio... ...ele sabe correr sozinho...

  • Atividade no Fórum
    4%
    • Nexus Maker
    • Prêmios
Re:Sistema de Tiro por Eventos - por Naughty Crusty
« Resposta #4 Online: 08 de Junho de 2010, 19:53:35. »
Então estaremos aguardando a demo ^^.

Re:Sistema de Tiro por Eventos - por Naughty Crusty

Offline TAXD

  • Vivendo Vários Mundos
  • Io
  • Lendário
  • *
  • Mensagens: 3.904
  • Reputação: 78
  • Sexo: Masculino
  • Vivendo Vários Mundos!

  • Atividade no Fórum
    27%
    • A Caverna do Dragão
    • Prêmios
Re:Sistema de Tiro por Eventos - por Naughty Crusty
« Resposta #5 Online: 29 de Agosto de 2010, 19:15:58. »
Faltou melhorar a formatação, mas a idéia é boa para os ABS.
Rep+ por trazer.

Re:Sistema de Tiro por Eventos - por Naughty Crusty

Offline Angel Warrior

  • O Anjo Guerreiro
  • Dragão de Prata
  • Antigo
  • *
  • Mensagens: 898
  • Reputação: 47
  • Sexo: Masculino
  • Não apresse o rio... ...ele sabe correr sozinho...

  • Atividade no Fórum
    4%
    • Nexus Maker
    • Prêmios
Re:Sistema de Tiro por Eventos - por Naughty Crusty
« Resposta #6 Online: 04 de Janeiro de 2011, 19:54:52. »
Desculpem-me postar aqui pela 3ª vez, como eu já disse antes, realmente é um grande tutorial (no sentido figurado e no sentido real da expressão também XD), mas eu gostaria de fazer uma pequena observação do início do tutorial quando fala a respeito de criar um evento do revolver no mapa na qual irá seguir o hero, mas... ...não seria muito mais fácil você criar um charset de um personagem segurando um revolver ao envés de ter que criar dois personagens para uma única função?

Re:Sistema de Tiro por Eventos - por Naughty Crusty

Offline brunoalemao

  • Saudades de um tempo que não volta mais...
  • Imortal
  • Antigo
  • *
  • Mensagens: 898
  • Reputação: 35
  • Sexo: Masculino
  • O fim de uma era. O início de uma lenda.

  • Atividade no Fórum
    1.8%
    • A Caverna do Dragão
    • Prêmios
Re:Sistema de Tiro por Eventos - por Naughty Crusty
« Resposta #7 Online: 04 de Janeiro de 2011, 20:00:48. »
Desculpem-me postar aqui pela 3ª vez, como eu já disse antes, realmente é um grande tutorial (no sentido figurado e no sentido real da expressão também XD), mas eu gostaria de fazer uma pequena observação do início do tutorial quando fala a respeito de criar um evento do revolver no mapa na qual irá seguir o hero, mas... ...não seria muito mais fácil você criar um charset de um personagem segurando um revolver ao envés de ter que criar dois personagens para uma única função?

Esse evento que você fala será o projétil, que ficará sempre à frente do char. Então sempre que e switch for acionada, esse evento irá movimentar para frente, e de acordo com as coordenadas e condições, acertar o alvo. Não é um evento para apresentar o gráfico do herói, e sim estabelecer uma função ^^

Re:Sistema de Tiro por Eventos - por Naughty Crusty

Offline Angel Warrior

  • O Anjo Guerreiro
  • Dragão de Prata
  • Antigo
  • *
  • Mensagens: 898
  • Reputação: 47
  • Sexo: Masculino
  • Não apresse o rio... ...ele sabe correr sozinho...

  • Atividade no Fórum
    4%
    • Nexus Maker
    • Prêmios
Re:Sistema de Tiro por Eventos - por Naughty Crusty
« Resposta #8 Online: 04 de Janeiro de 2011, 20:03:33. »
Ah sim, agora eu estou entendendo, muito obrigado pela explicação bruno ^^, agora e se eu quisesse fazer um adversário tipo assim, um chefão que também pode me atacar com tiros, como seria a programação correta para ele tentar atirar em mim estando ele sujeito a erros e acertos de forma aleatória?

Re:Sistema de Tiro por Eventos - por Naughty Crusty

Offline brunoalemao

  • Saudades de um tempo que não volta mais...
  • Imortal
  • Antigo
  • *
  • Mensagens: 898
  • Reputação: 35
  • Sexo: Masculino
  • O fim de uma era. O início de uma lenda.

  • Atividade no Fórum
    1.8%
    • A Caverna do Dragão
    • Prêmios
Re:Sistema de Tiro por Eventos - por Naughty Crusty
« Resposta #9 Online: 04 de Janeiro de 2011, 20:25:56. »
Ah sim, agora eu estou entendendo, muito obrigado pela explicação bruno ^^, agora e se eu quisesse fazer um adversário tipo assim, um chefão que também pode me atacar com tiros, como seria a programação correta para ele tentar atirar em mim estando ele sujeito a erros e acertos de forma aleatória?

Sinceramente não faço ideia. Não saberia nem fazer esse sistema sem ler o tutorial, me confundo muito com coordenadas. Mas creio que não seja fácil, pois você vai ter que idar com opções diferentes, além programar a inteligência artificial, deve ser bem complicado. Desculpe não ajudar ^^'

 



SMF 2.0.2 | SMF © 2011, Simple Machines
SimplePortal 2.3.4 © 2008-2011, SimplePortal