🤔 Para Refletir :
"Reduz o tamanho desse jogo aí... não tenho espaço... *snif*"
- Delayzado

As variáveis - Tutorial VI

Mayleone Feminino

Conde
Membro
Membro
Console.Write("Hello World!");
Juntou-se
25 de Outubro de 2016
Postagens
267
Bravecoins
3.025
[box class=catbg4]
fbqtl.png

Comandos adicionais.
[/box]


[box class=catbg4]Variáveis condicionais:[/box]
Já vimos todos os modos de programar as variáveis, desde criar mini-quests utilizando condições e somas, até se localizar com coordenadas.
Agora, iremos complementar nossa aula aprendendo onde e como utilizar alguns comandos com variáveis, que não foram explicados nas aulas anteriores.

Apesar do nome, temos outro modo de trabalhar as variáveis com condições, porém sem necessariamente utilizar o comando de condições.
Veja essa imagem:

Untitled%25201.png


No seu evento, abaixo das condicionais das switchs, você tem a opção “variável”.
Aqui, nós iremos fazer o mesmo que faríamos com uma switch: Ativar uma página de determinado(s) evento(s). Só que a diferença entre uma switch e uma variável que ativa páginas de eventos, é que as switchs apenas ficam ON ou OF se algum outro comando mandar, porém, com as variáveis temos uma situação diferente, já que essa página só será ativada se a variável X (uma variável que você escolher) chegar a um determinado valor (que você também irá escolher).
O que eu acho péssimo é que apenas podemos ter a opção “maior/igual” nas variáveis, ou seja, não podemos condicionar que algo ocorra se variável X diminuir e chegar a um valor desejado, apenas aumentar, fazendo assim nós termos que criar diversas “gambiarras”.
Mesmo com esse ponto negativo, ainda podemos programar muitas coisas com essa condicional. Vamos como de costume a um exemplo?
Que tal criarmos um simples e prático mini-abs para isso? Como de costume: Se encostarmos-nos ao inimigo, teremos que pressionar o botão de ataque, e claro... Ataca-lo. Do contrário, se não pressionarmos nada, ele (inimigo) que nos atacará.
Se atacarmos o inimigo 5 (cinco) vezes, ele irá ser derrotado, e irá sumir do mapa. Vamos lá?

Crie um evento dessa forma (se atente em todos os comandos e opções)

Untitled%25202.png


Acima temos tudo programado do que precisamos inicialmente: Leia com atenção o comentário em verde do comando, também.
O que temos aqui? Se o personagem pressionar a tecla A ao encostar-se ao inimigo, ele irá receber uma animação de golpe, e depois será empurrado dois passos para trás.
Se ao encostarmos-nos ao inimigo, e não pressionarmos a tecla de ataque, o inimigo irá nos dar um golpe (animação), seremos empurrados dois passos para trás também, e depois perderemos 200 de HP.
Até aqui tudo tranquilo, correto? Porém, precisamos fazer com que de alguma forma ao atacarmos o inimigo, ele perca HP também! Ou... No caso aqui, aumente os pontos de danos!
Dentro da condição de tecla, após o comando da animação do golpe, crie uma nova variável com o nome de “Danos do inimigo”.
Agora determine um valor que será adicionado aos pontos de danos do inimigo. Eu irei colocar +1, mas você poderá definir a quantidade que preferir.

Untitled%25204.png


Certo, agora toda vez que o personagem atacar o inimigo, será adicionado aos pontos de danos dele +1.
Agora, crie uma nova página nesse evento, e deixe sem gráfico.
Feito isso, vamos criar nossa condicional, ou seja, quando a variável “Danos do inimigo” chegar a determinado valor, essa página do inimigo será ativada, onde não há nada, ou seja, o inimigo sumirá do mapa.
Nessa segunda página do evento, marque a caixa “variável” da opção “condições do evento”, selecione a variável “danos do inimigo” e dentro do Box onde há o número zero, coloque a quantidade de danos que você deseja que o inimigo receba, ao ser atacado diversas vezes. Eu irei colocar 5 (cinco), ou seja, se atacarmos o inimigo cinco vezes, ele irá executar essa outra página do evento, onde ele irá sumir.

Untitled%25205.png


Rode o teste do jogo, e tente derrotar o inimigo, pressionando a tecla A ao encostar-se a ele! Quando você ataca-lo as cinco vezes ele irá sumir certo? Se sim, tudo deu certo!
Esse processo de utilizar variáveis condicionais nas páginas de eventos, sem condições é muito eficaz e prático, e claro que o ABS mostrado aqui foi apenas um exemplo (pois ele é bem bugado) você poderá fazer diversas coisas com esse comando, basta a sua necessidade na programação.


[box class=catbg4]Definir teclas:[/box]
Um comando que infelizmente as engines mais novas não possuem, é o comando “definir teclas” que em minha opinião pode ser bem útil e podemos utiliza-lo para outros fins, de um jeito que a condição de teclas não funcionaria.
Vamos supor que o jogador deva pressionar a tecla “S” numa quest, e se ele por ventura pressionasse outro botão, o jogo daria game over.
Claro que esse exemplo é bem improvável, mas se quiséssemos programar algo mais avançado, como por exemplo, um sistema de Guitar Hero, esse comando cairia muito bem.
Mas, como não queremos deixar o tutorial enorme, iremos apenas utilizar esse exemplo citado por mim, anteriormente.
O comando de definir teclas armazena o valor de uma variável nele, e com essa variável podemos criar uma condição de tecla, porém com números. É algo mais ‘livre’ que o comando “condição de tecla”.
Vamos comparar a diferença entre ambos os comandos? Irei utilizar o exemplo da tecla S. Vamos primeiro programar com o definir teclas:
Crie um novo evento em processo paralelo em seu mapa, e vá ao comando “Definir teclas”:

Untitled%25206.png


Uma janela assim irá aparecer:

Untitled%25207.png


Primeiramente você irá definir uma variável para trabalhar com o comando, no caso acima eu já defini uma variável, a variável de ID 5 com o nome de “Tecla”.
Essa lista de números representa o valor de cada tecla nesse comando.
Então já que no exemplo o jogador deve pressionar a tecla “S”, eu irei criar uma condição com o número 15, vide a lista: S = 15. Se no caso fosse à tecla “Shift” seria o valor 11, e assim por diante...
Dê ok, e como dito acima, crie uma condição utilizando a variável que armazena essa tecla, no meu caso a variável “Tecla” de ID 5.
Em constante deixe o valor da tecla desejada, e como no exemplo a tecla é a S, deixarei o valor 15 na constante.
Agora, dentro da condição, utilize um comando que demonstre que o jogador pressionou a tecla correta, eu apenas escrevi “Você venceu” com o comando de mostrar mensagens.
Dentro da exceção desta condição, crie outra condição utilizando a mesma variável de tecla, com 15 novamente na constante, só que dessa vez marque a caixa “diferente”:

Untitled%25208.png


Dentro dessa outra condição, utilize o comando mostrar mensagens e escreva algo do tipo: “Errado”.

Untitled%25209.png


Isso significa que: se o jogador pressionar a tecla S, o comando de definir teclas vai armazenar o número 15 na variável, e a condição será executada, se a variável da tecla for igual a 15, a mensagem de sucesso irá aparecer, mas caso o jogador pressione qualquer tecla diferente da tecla S, a exceção será executada.
Agora rode o teste do jogo e experimente: Primeiro pressione a tecla S. Tudo certo, não? Agora tente pressionar qualquer tecla dentre (A,D,Q,W,Z e X) e veja o que ocorre... A mensagem de erro aparece, certo? Se tudo isso ocorreu corretamente parabéns!
Como eu já disse, esse exemplo é bem simples, mas com esse comando você poderá fazer grandes coisas.
Mas você ainda não viu a diferença entre utilizar todo esse método do definir teclas, e do comando de condição de tecla, certo?
Vamos ver isso agora! Apague tudo que fez até aqui, e iremos continuar com o exemplo da tecla S:
Agora, crie uma condição de tecla, com a letra Y (caso não saiba, a letra “Y” corresponde à tecla S no RPG Maker).
Agora faça o mesmo procedimento: Dentro da condição coloque a mensagem “Você venceu”. Na exceção, já que não podemos utilizar o comando “diferente da tecla Y” já que não estamos trabalhando com variáveis, utilize apenas o comando de mostrar mensagens e escreva “errado”. Rode o teste do jogo.
Só de você entrar no jogo a mensagem de erro aparece, e isso ocorre porque o RPG Maker entende que como nenhuma tecla está sendo pressionada, nem mesmo a S, ele irá executar a exceção.
Temos um modo de impedir isso, mas para isso acontecer, teremos que criar uma condição para cada tecla: A,D,W,Q,Z e X. Para só assim o RPG Maker entender que a mensagem de erro apareça ao pressionar uma dessas teclas citadas, e a mensagem de sucesso se pressionar S.
Teremos então sete condições no final (uma para cada tecla) sendo que com o comando de “definir teclas” teremos apenas duas.
Viram a diferença agora? Garanto que com o definir teclas, não irá gerar lag alguma no projeto, e ele é mais eficiente, evitando assim termos que programar várias condições.
Agora que você aprendeu como utilizar/quando e de que forma, esse comando, você poderá criar vários projetos e sistemas como os de Guitar Hero ou Dance Revolution! Experimente!


[box class=catbg4]O resto de uma divisão:[/box]
Nas aulas anteriores, eu prometi explicar como que o operador (%) funciona nas variáveis do RPG Maker.
Como o título diz: “O resto de uma divisão”, ou seja, esse comando nada mais, nada menos serve para acessar o valor do resto de uma divisão entre variáveis.
Ele é bastante utilizando se houver necessidade de fazermos algum comando que entre uma divisão, algo ocorra se o resto da mesma for X.
Eu já o utilizei diversas vezes, para criar um sistema de HUD.
Em minha opinião, esse comando é pouco usado se não houver necessidade de um cálculo para executarmos alguma informação com base de uma divisão, mas mesmo assim ele não deixa de ser importante.


[box class=catbg4]Teleporte através de variáveis:[/box]
Você sabia que podemos teleportar eventos ou até mesmo o personagem, apenas utilizando variáveis de coordenadas?
Vamos primeiro testar o teleporte de eventos (que só podem ser teleportados no mesmo mapa do personagem).
Nós podemos fazer um exemplo de que o herói possui uma caixa, e se ele pressionar a tecla A, ele soltará a caixa no mapa.
Para isso ocorrer, a caixa deve estar o tempo todo junto do herói no mapa, mas não iremos utilizar o comando “seguir herói”, pois ele é pouco eficiente.
Nós podemos utilizar o comando de “posição do evento” e deixar para que a caixa sempre fique nas mesmas coordenadas do herói.
Começando... Crie o evento da caixa no mapa em processo paralelo, e de preferência com o gráfico da mesma. Deixe marcada a opção “direção fixa” e crie uma switch qualquer com o nome de “Caixa” e deixe-a ON nessa página do evento em “condição do evento”.
Agora, nos comandos de eventos crie duas variáveis armazenando as coordenadas X e Y do personagem no mapa:

Untitled%252010.png


Agora chame o comando “posição de evento” – que se encontra na pag.2 dos comandos de eventos, e faça o seguinte na janela que aparecer:
• Deixe marcada a opção “Este evento” e caso não esteja marcada, marque-a.
• Set a opção “Especificar por variável”, e onde está pedindo as coordenadas X e Y, coloque as variáveis das coordenadas X e Y do personagem no mapa:

Untitled%252011.png


O que fizemos aqui? Primeiro armazenamos nessas duas variáveis, as coordenadas X e Y do personagem no mapa, e depois com o comando “posição do evento” iremos teleportar o evento da caixa sempre para as mesmas coordenadas X e Y do herói.
Depois de tudo isso, utilize uma switch local para o RPG Maker executar a segunda página desse evento, onde iremos deixar a mesma com o gráfico da caixa, porém sem comandos.
Agora, crie um segundo evento no mapa em processo paralelo, porém com uma condição da tecla A, e dentro desse comando deixe ON a switch “Caixa”.

Untitled%252012.png


Teste o jogo, e ande pelo mapa: Depois pressione a tecla A e veja o que ocorre: A caixa apareceu bem onde você estava, é algo como “jogar a caixa no mapa”.
Esse sisteminha foi apenas um exemplo, e você poderá fazer diversos outros sistemas com o teleporte de eventos através de variáveis, como sistemas de projéteis ou bombas, por exemplo.
E você não precisa necessariamente sempre teleportar o evento para as coordenadas do personagem, você pode teletransporta-lo para as coordenadas de outro evento, também.

Teleporte do personagem:



Assim como no teleporte através de eventos, você pode teleportar o personagem para as coordenadas X e Y de um evento qualquer no mapa. Basta utilizar o comando “Teletransporte” que também se encontra na página 2 dos comandos de eventos, e armazenar duas variáveis com as coordenadas X e Y de um evento no mapa, e criar uma terceira variável com o nome de “ID” que armazena justamente a ID do mapa, onde o personagem quer se teleportar: Para fazer isso com essa terceira variável, vá até a opção “Outro” e selecione “ID do mapa”:

Untitled%252013.png


Agora, com o comando de opções de variável, utilize novamente a variável “ID” e deixe sua constante igual a 1, já que estou no mapa 1.
Agora, com o comando de teletransporte, marque a opção “especifique por variável” e coloque as respectivas variáveis nas opções que aparecerem: Variável de ID do mapa e as variáveis das coordenadas X e Y do evento no mapa:

Untitled%252014.png


Seu comando de evento ficará assim:

Untitled%252015.png


Agora, o personagem será teleportado para as coordenadas X e Y de determinado evento.
Como eu sempre digo isso é apenas um exemplo, você poderá fazer o que desejar com esses comandos, agora que sabe como eles funcionam.



[box class=catbg4]Fim da sexta aula:[/box]

Por enquanto o que temos é isso, qualquer dúvida em relação à esta aula, podem postar no tópico.
 
Voltar
Topo Inferior