Mostrando postagens com marcador TutorialEventos. Mostrar todas as postagens
Mostrando postagens com marcador TutorialEventos. Mostrar todas as postagens

sábado, 19 de dezembro de 2009

HUD Totalmente por eventos

HUD Totalmente por eventos

Características:
  
  • Barra de HP;
  • Barra de MP;
  • Barra de EXP;
  • Barra de EXP para próximo level;
  • Level do personagem;
  • Face com nome do personagem;
  • Estado do herói(evenenado, cego, etc.);
  • "Level UP!" e "Level Down!".

ScreenShot:


Download:
Clique Aqui(download via 4shared)

Créditos e Agradecimentos:
Aero por fazer as imagens usadas nessa demo
zecomeia por programar o sistema
Thibra pela solução pra facilitar o calculo da barra
Linkei pela dica interessante sobre as barras de experiência e próximo level

Informações sobre como utilizar:
Caso for usar esta HUD do jeito em que está mudando apenas as imagens tenha em mente as seguintes informações sobre cada imagem da mesma(para ajudar use como template as imagens na pasta picture da demo):
  
  • 10 imagens com os números de 0 a 9(para mostrar o nível do personagem);
  • 1 imagem/icone de "level up" e 1 de "level down";
  • Icones para mostrar cada estado do herói(envenenado,cego,morto,etc);
  • Um fundo para a HUD(porque se não nos movimentos de barras,etc, o fundo vai ficar como cenário);
  • Uma imagem com a face e nome do herói devidamente posicionados(siga o template).Envolto à face não deixe transparente porque as barras poderam aparecer por traz, mas deixe tranparente o resto, se não as barras podem ser cobertas por causa que a face com o nome esta em um layer acima(SIGA O TEMPLATE!).
  • 4 imagens para as barras(pode usar a mesma imagem paras as quatro se preferir).O essencial ao fazer a barra é que ela tenha 100pixeis de comprimento na horizontal(largura,eixo X), já na vertical não importa.
  • Uma imagem para ser a "capa" HUD, ou seja, estará no layer de maior prioridade, portanto lembre-se de fazer "furos"(deixar transparente) onde estão localizados os outros gráficos se não os mesmo vão ficar cobertos pela capa da HUD e não aparecerão.

Tutorial:
Começando pelas barras
O calculo de todas as barras são muito simples e seguem quase em todos os casos a mesma forma.
Acho que muitos devem conhecer o velho, bom e simples calculo de porcentagem?Então é ele mesmo que foi usado.Lembram que foi dito na descrição das imagens que as barras tem que ter 100pixeis na horizontal?O motivo é deixar a precisão da barra no deslocamento de 1 pixel para cada 1% do estato em questão(HP, MP,etc).Então seria o seguinte:

no caso do HP
variavel_HP = HP do personagem
variavel_HP *= Largura da barra
variavel_HP /= HP maximo do personagem

Após o calculo pegamos o valor da variavel_HP e colocamos como a coordenada X do "mostrar imagem" da barra em questão e, se preciso, somamos um valor a variavel_HP para melhor posiciona-la.

no caso do MP
variavel_MP = MP do personagem
variavel_MP *= Largura da barra
variavel_MP /= MP maximo do personagem

Após o calculo pegamos o valor da variavel_MP e colocamos como a coordenada X do "mostrar imagem" da barra em questão e, se preciso, somamos um valor a variavel_MP para melhor posiciona-la.

Já no caso da experiência, se olhar no controle de variaveis verá que não existe um "EXP max", portanto foi preciso fazer um pré calculo para descobrirmos qual o valor máximo.

[001]EXP_Calc_Bar1 = EXP do personagem
Mudar nível: Todo o grupo +1 nivel

[002]EXP_Calc_Bar4 = EXP do personagem
Mudar nível: Todo o grupo -1 nivel
[003]EXP_Calc_Bar2 = EXP do personagem
[004]EXP_Calc_Bar3 = [003]EXP_Calc_Bar2
[001]EXP_Calc_Bar1 -= [004]EXP_Calc_Bar3
Mudar Experiência: Todo o grupo +[001]EXP_Calc_Bar1
#Comentario: Aqui já começa o simples calculo de porcentagem
[002]EXP_Calc_Bar4 -= [003]EXP_Calc_Bar2
[001]EXP_Calc_Bar1 *= Largura da barra
[001]EXP_Calc_Bar1 /= [002]EXP_Calc_Bar4

*OBS: para a barra de próximo level, faça o mesmo calculo acima porém será acrecentado algo mais. Veja:

[001]EXP_Calc_Bar1 = EXP do personagem
Mudar nível: Todo o grupo +1 nivel

[002]EXP_Calc_Bar4 = EXP do personagem
Mudar nível: Todo o grupo -1 nivel
[003]EXP_Calc_Bar2 = EXP do personagem
[004]EXP_Calc_Bar3 = [003]EXP_Calc_Bar2
[001]EXP_Calc_Bar1 -= [004]EXP_Calc_Bar3
Mudar Experiência: Todo o grupo +[001]EXP_Calc_Bar1
#Comentario: Aqui já começa o simples calculo de porcentagem
[002]EXP_Calc_Bar4 -= [003]EXP_Calc_Bar2
[001]EXP_Calc_Bar1 *= Largura da barra
[001]EXP_Calc_Bar1 /= [002]EXP_Calc_Bar4

Next_exp_bar = [001]EXP_Calc_Bar1
Next_exp_bar += 1
Next_exp_bar *= -1
Next_exp_bar += 1

Após o calculo pegamos o valor da EXP e colocamos como a coordenada X do "mostrar imagem" da barra em questão e, se preciso, somamos um valor a EXP para melhor posiciona-la.

Bem simples agora certo.No meio dos calculos da experiência foi colocado uma instrução dizendo para fazer condições para as habilidades, isso porque se você parar pra pensar perceberá que caso o personagem esteja no level 8 por exemplo, e aprenda uma magia no level 9 então essa magia já será aprendida no level 8 por causa do comando de subir +1 level.Existe outra forma de driblar isso simplesmente aumentando um no level de cada magia que vai ser aprendida no Database do seu jogo, mas aí pode parecer gambiarra alem de possível privação de utilizar o level 99 para aprender uma habilidade, ainda não pensei na possibilidade.Use a imaginação, combine as idéias, talvez poupe seu trabalho fazendo a condição apenas para uma magia no level 99.

DICA:

Usar a barra de experiência e de próximo level na HUD pode ficar meio estranho porque a diferença está apenas na direção que a barra se move, quando uma está no máximo outra está no mínimo e vice versa.Uma idéia proposta por Linkei é fazer a barra de experiência como uma barra total, ou seja, de toda esperiência ganha no jogo sendo que só chegaria ao máximo no ultimo level, enquanto a de próximo level continua no mesmo equema.

O Contador de level
É bem simples fazer este contador também.Como foi dito no começo, são usadas 10 imagens, cada imagem contem um número de 0 a 9.Como o level no database só vai até 99 então faremos um contador de apenas 2 digitos, que são as:

Unidades

Como o no database o level vai até 99(2 digitos) então para pegarmos a casa das unidades pegamos o resto do LV divido por 10.

variavel_LV = Level do personagem
variavel_LV %= 10
variavel_LV(unidades) = variavel_LV

Agora a variável "variavel_LV(unidades)" tem o valor das unidades do level, então basta criar 10 condições onde cada uma verifica se "variavel_LV(unidades)" é igual a um número de 0 a 9, e então no corpo da condição colocamos o comando de mostrar imagem com a imagem do número correspondente(use o mesmo número para todas as imagens).Vamos colocar uma condição na exceção da outra(com exceção da ultima) para amenizar possiveis problemas com lag.

se variavel_LV(unidades) == 0
 mostrar imagem(10, "numero0", x, y)
exceção
 se variavel_LV(unidades) == 1
  mostrar imagem(10, "numero1", x, y)
 exceção
  se variavel_LV(unidades) == 2
   mostrar imagem(10, "numero2", x, y)
  exceção
...
...
... até chegar ao 9

Para evitar mais o lag, faça isso dentro da condição de level Up/Down, assim só será analisadas essas condições e executados os eventos quando mudar de level.

Dezenas

É feito da mesma forma das unidades, porem ao invez de pegarmos o resto da divisão por 10, apenas dividimos por, veja:

variavel_LV = Level do personagem
variavel_LV /= 10
variavel_LV(dezenas) = variavel_LV

O resto do procedimento também é o mesmo, basta trocar o número da imagem, a posição(X,Y).

se variavel_LV(dezenas) == 0
 mostrar imagem(11, "numero0", x, y)
exceção
 se variavel_LV(dezenas) == 1
  mostrar imagem(11, "numero1", x, y)
 exceção
  se variavel_LV(dezenas) == 2
   mostrar imagem(11, "numero2", x, y)
  exceção
...
...
... até chegar ao 9

Para evitar mais o lag, faça isso dentro da condição de level Up/Down, assim só será analisadas essas condições e executados os eventos quando mudar de level.

Level UP/Level Down
Basicamente existem duas variaveis que ambas contem o valor do level do herói, porém uma é atualizada constantemente ja a outra apenas quando o herói subir/descer o level.Essa pate do sistema é dividido uma parte para o level up e e outra para o level down, a diferença fundamental entre os dois é apenas a primeira condição onde uma comprar se a variavel que é atualizada constantemente é maior que a outra, e no caso do level down a comparação é o inverso, ou seja, é comparado se a variavel constantemente atualizada é menor que a outra.
Fora isso o resto se trata de eventos visuais/audiveis para indicar o level up ou level down.E outra coisa também importante é que são atualizados alguns valores para evitar bugs, etc.

Estados
Essa indiscutivelmente é a parte mais básica desta HUD.Simplesmente é criada uma variavel que vai ser usada para fazermos as condições onde cada condição, em seu corpo, tem um comando para mostrar a imagem do icone do estado na HUD e atribuir aquele estado ao herói.Foram colcadas algumas bobagensinhas a mais como causar "Game Over" quando o personagem chegar a HP=0(estado morto), e antes do game over mudar o gráfico do herói para deixa-lo deitado indicando que está morto.

Aqui acaba a resumida explicação desta HUD, em caso de duvidas/bugs contate  sj-pereira@hotmail.com.
***Na demo eu posso ter usado, sem necessidade, variaveis a mais entre outras coisas, isso aconteceu porque teve coisas que passaram despercebidas quando terminei o sistema(coisas de testes)

sexta-feira, 18 de dezembro de 2009

Trabalhando Amplamente as Mensagens

Primeiro reforço das aulas de programação por eventos
por zecomeia


Trabalhando Amplamente as Mensagens

Introdução


O objetivo deste reforço na verdade é mostrar e explicar os comandos para mensagens existente nos RMakers, foi feito um reforço porque o que vale para um RM não não vale para outro.
Além de mostrar os comandos também irá detalhar um pouco mais a parte de "Opções de Mensagem", que não existe no RM2000 e 2003 mas que o equivalente neles seriam os comandos "Forma de exibição da mensagem" ou "Estilo de Mensagem" e "Gráfico de Face da mensagem" ou "Gráficos de Rosto", e que aliás tem algumas ferramentas a mais neles.


Comandos nas Mensagens para RPGMaker 2000 e 2003

A maioria dos comando começam com uma barra inversa (\), então isso a torna um caracter especial na mensagem e se colocada sozinha não irá aparecer, então que tal começarmos com o comando que faz aparecer a barra inversa?Vamos lá:

\\     => Mais de uma barra inversa faz com que apareça a quantidade de barras na mensagem igual ao número de barras digitadas menos 1(a primeira não aparece).

\C[id] => Este comando faz com que todos os caracteres que venham a seguir tenham a cor definida pelo número colocado no lugar da palavra "id".São 20 cores dispostas de 0-19 e dependem do gráfico de sistema escolhido(windowskin).

\S[id] => Com esse comando é possível controlar a velocidade com que os caracteres aparecem na mesangem, podendo ser substituido "id" por números de 1-20, sendo que 1 é a velocidade mais rápida e 20 a mais lenta.

\N[id] => Mostra o nome do personagem.Substitua "id" pelo o número do personagem no Database(Banco de Dados).

\V[id] => Mostra o valor de uma variável.

\$     => Mostra uma janela no canto da tela que mostra a quantidade de dinheiro do jogador.Para fazer com que o valor apareça na própria mensagem crie uma variavel e dê o valor dela igual ao dinheiro possuido, depois insira na mensagem o comando \V[id].

\!     => Quando colocado na mensagem faz com que a mensagem só continue a ser digitada quando for pressionada uma tecla de confirmação/cancelamento.

\.     => Inseri 1/4s de atraso para aparecer o próximo caractere.

\|     => Inseri 1s de atraso para aparecer o próximo caractere.(equivale 4 repetições do comando anterior)

\_     => Equivalente a metade do espaço que é deixado pela tecla space bar(barra de espaço).Aconselho fazer um teste para entender melhor.

\^     => Faz com que a mensagem se encerre automaticamente após ter aparecido todos os caracteres da mesma.Normalmente(sem esse comando), para ser encerrada a mensagem precisa que seja pressionada uma tecla de confirmação/cancelamento.

\> \<  => Mostra instantaneamente o que está entre "\>"  "\<" , independente da velocidade da mensagem.

$      => Este comando imprime símbolos na mensagem, siga a tabela abaixo para usar este comando.

Símbolos Especias na mensagem



Símbolos de inventório:
   $A: Espada         $B: Escudo      $C: Estrela de Salomão(David)

Símbolos dos planetas:
   $D: Sol         $E: Lua                 $F: Mercurio
   $G: Vênus       $H: Terra         $I: Marte
   $J: Jupiter      $K: Saturno               $L: Urano
   $M: Netuno       $N: Plutão

Signos Astrológicos(do oróscopo):
   $O: Aries      $P: Touro               $Q: Gemeos
   $R: Câncer       $S: Leão               $T: Virgem
   $U: Libra      $V: Escorpião              $W: Sagitario
        $X: Capricôrnio      $Y: Aquario              $Z: Peixes

Outros Símbolos:
   $a: rosto (sorrindo)                             $b: rosto(normal)          
        $c: rosto(triste)
   $d: gota 1      $e: gota 2         $f: espadas(escuro)
   $g: coração(escuro)     
        $h: ouros(escuro)   $i: paus(escuro)
   $j: espadas(branco)     
        $k: coração(branco)      
        $l: ouros(branco)
   $m: paus(branco)     
        $n: cavera       $o: cruz
   $p: sol(desenho)   $q: lua(desenho)       $r: bolinha branca

Flechas(direcionais):
   $s: Cima       $t: Direita         $u: Baixo
   $v: Esquerda      $w: Cima-Direita      $x: Baixo-Direita
        $y: Baixo-Esquerda   $z: Cima-Esquerda


*OBS:Estes símbolos estão localizados no arquivo RPG_rt.exe da pasta do seu RPGMaker 2000.Para editar estes símbolos(fazer seus próprios) você precisará de um programa como o Resource Workshop ou o eXeScope.Com ele você poderá exportar imagens, edita-las e então importa-las de volta, para seu pojeto.
Caso mude algum símbolo lembre-se de seguir como tamplate a tabela de codigos passadas acima, porque eles representam a posição em que está o símbolo.

***Acredito que absolutamente todos os comando do RM2000 funcionem no RM2003.Digo isso porque testei todos, mas como "errar é humano" pode ser que algum destes comandos não tenham funcionado da mesma maneira nos dois RMakers e isso pode ter passado despercebido por mim.Caso encontre alguma diferença gostaria que alerta-se com um post aqui no tópico.

Aqui acaba tudo que você precisa saber sobre as mensagens no RPGMaker2000/2003, com certeza todos estes comando ajudam a personalizar mais seu jogo dando mais liberdade e tirando a monotomia das mensagens.Aprenda a explorar esses comandos.

Antes de mostrar os comandos das mensagens nos RMXP/VX, vamos ver um pouco dos outros comandos(ainda para RM2000/2003) que disse que seriam abordados aqui "Forma de exibição da mensagem" ou "Estilo de Mensagem" e "Gráfico de Face da mensagem" ou "Gráficos de Rosto".


Forma de exibição da mensagem ou Estilo de Mensagem

Além das opções da posição da janela da imagem(abaixo, centro ou acima) e se mostrar a janela ou não(opaco ou transparente), tambem existem duas opções que podem ser marcadas, são elas:

"Não permitir que a janela sobreponha o Héroi":com está opção marcada não importa a posição que você colocou para a janela aparecer(acima, centro ou abaixo), porque esta posição vai ser dada por dependência da posição do personagem na tela, desse modo impedindo que a mensagem apareça onde o mesmo está.
"Permitir que outros eventos continuem":se marcada essa a opção qualquer evento no mapa que esteja sendo executado ao mesmo tempo que a mensagem continuará funcionando, caso não for marcada a opção o evento aguardará o fim de cada mensagem.

Gráfico de Face da mensagem ou Gráficos de Rosto

Com esse comando você poderá decidir se irá aparecer um gráfico de rosto junto da mensagem ou não, e se aparecer, em que lado(esquerdo ou direito) irá aparecer na janela, além de uma ferramente adicional de espelhar.Com a ferramenta espelhar o grafico da face inverte totalmente para o outro lado, ajuda a deixar de uma forma mais legal o dialogo de acordo com o espaço onde acontece se for bem usada esta ferramenta junto da posição da face na janela.

Agora vamos com as versões XP e VX

 \V
[x]
Mostra o valor da variável X.

 \N[x]
Mostra o nome do personagem com ID X. 

 \C
[x]
Muda a cor das letras com base na paleta do gráfico de janela. Troque X pelo número correspondente à cor.*No RMaker XP essa cores seguem uma tabela que será mostrada um pouco mais a frente.

 \G 
Mostra uma janela com o dinheiro do grupo.

 \. 
Cria uma pausa de 0.25 segundos.*No maker XP não funciona.

 \| 
Cria uma pausa de 1 segundo.*No maker XP não funciona. 

 \!
Cria uma pausa que aguardará até o jogador pressionar uma tecla.*No maker XP não funciona.

 \>
Ao utilizar isto, ao invés do texto ser mostrado letra por letra, toda a mensagem será exibida.*No maker XP não funciona

 \^ 
Fecha a janela de mensagem.*No maker XP não funciona.

 \\ 
Exibe o caractere \.


Tabela de cores para os caracteres da mensagem (RMXP):




Vocês devem estar pensando, "eu ja vi isso em algum lugar...", isso porque já viram mesmo(pelo menos quem leu o Help do RPGMaker.Eu só citei quais desses comandos não funcionam no RMaker XP.
Agora antes de colocar na cabeça que o RMaker XP é bem pior nas mensagens(o que de certa forma é verdade, hehe), mas existe um script de mensagens avançado que geralmente(acho que sempre) vem junto do Help do RPGMaker XP.

*Caso alguém não tenha o Help com este script, está interessado em ter, post aqui pedindo.

Agora, como disse antes, vamos ver um pouco mais de "Opções de Mensagem".Na verdade não vamos ver exatamente "Opções de Mensagem" porque tudo que tinha para ser visto sobre o mesmo ja foi visto na 3ªAula, mas então vamos falar do que seria o equivalente no RMVX.Este comando está inbutido do comando Mostrar Mensagem no VX,então vamos ver o que muda.

Além de poder escolher entre mostrar janela ou não, também pode escolher em colocar um fundo preto no lugar da janela.Outra coisa bem simples é que no XP não tem como colocar faces por comando do programa, no VX sim.E a ultima diferença é que o usuario pode selecionar a opção "Múltiplas Mensagens" que permite que vocês escreva todas as falas de uma vez chamando o comando só uma vez, daí o próprio programa separa elas em seus limites de altura da janela.



Bom com isso acabamos o reforço "Trabalhando Amplamente as Mensagens", espero que tenham gostado e tirem suas dúvidas se preciso.

Comentários

Uma parte do conteúdo deste reforço(aliás, boa parte do conteúdo das aulas também) foi retirados dos respectivos arquivos de Help(tive que traduzir algumas partes e explicar melhor) dos próprios RMakers, e o que não foi tirado de lá é de experieêcia própria e também pequenos testes e análises dos comandos(minha memória não é tão boa então vivo tendo que relembrar algumas coisinhas dos eventos).Lembrando também que as aulas e os apêndices são feito de forma discontraída e de fácil entendimento(espero que esteja) tentando fugir da forma que são os livros(feitos formalmente) para ficar mais fácil de passar o conteudo, e que só a leitura as vezes não funciona por isso estou aqui disponível como "professor" para ajudar a esclarecer dúvidas(e como todo pofessor, também aprendo com os alunos).

Link para:
nenhum

Extras:
nenhum

Switchs Locais

Terceiro reforço das aulas de programação por evento
por zecomeia

Switchs Locais

Introdução


Um reforço bem curto afim apenas de esclarecer as switchs locais.

Uso geral

A diferença entre as switchs comuns que conhecemos até então e as switchs locais é que as locais só valem para o evento em questão, ou seja, não tem efeito sobre outros efeito alem do próprio onde é usado.
Como as switchs locais só valem para o evento em que são usadas então usamos ela para trocar de página nos eventos(isso não significa que não pode ser usadas com a mesma função que as normais, mas vale lembrar que não afeta outros eventos).Ex:

Crie um evento como nas imagens a seguir:











Analise o evento e o efeito proporcionado ao executa-lo.

Agora se tentar coloca uma condição com uma switch local em um evento e ativar a switch em outro evento não funcionará.

Comentários

Viram como é fácil, realmente agora não tem mais nada o que dizer, mas caso tenha restado duvidas pergunte.

Link para:
nenhum

Extras:
nenhum

Lógica

Segundo reforço das aulas de programação por evento
por zecomeia


Lógica

Introdução

No começo é difícil entender a Lógica(no nosso caso lógica Booleana, procure por George Boole na wikipedia), mas com o tempo rapidamente vai ficar fácil, basta concentração.

O que podemos considerar como lógica?

Qualquer afirmação que fazemos é uma lógica independente de estar “certa” ou “errada”.Ex:

3 + 43 = 2

Isto é uma lógica, mas o importante é se preocupar se a lógica é verdadeira ou falsa.No exemplo acima se formos pensar na matemática podemos dizer que aquela lógica é falas, mas em outros casos aquele resultado, 2 por exemplo, pode ser apenas representativo da situação(estado) em que
afirmação(3 + 43 =) se encontra no contexto de onde ela foi aplicada.
Agora parece que complicou mas veremos como isso é simples.Então vamos ver sobre os estados.

Estados

O que nos importa para a programação são os estados que  podem  ser "verdadeiro e "falso"(existe o nulo também, mas não vamos usá-lo por não ser usado na programação por eventos para o nosso caso).
Veja a seguir:

Verdadeiro = ON  = 1
Falso      = OFF = 0


Iremos usar o 0 e 1 para representar.Resumindo o 0(falso) será "desligado", e 1(verdadeiro) será "ligado".
EX:
Geralmente em aparelho eletrônicos, junto ao botão de Liga/Desliga tem um símbolo de um 0 e 1, quando está ligado a chave está pro lado do 1 e desligado pro lado do zero.

Como só usamos 0 ou 1 então temos que usar uma matemática baseada nas lógicas:

AND/E:
A lógica AND(E em português) diz que a saída só será 1 se A and B forem iguais 1(A e B no caso porque só existem esses dois termos, caso existissem mais termos todos teriam que ser iguais
a 1).Então se repararmos bem o que a lógica AND faz é multiplicar[/i] os termos.

Veja a tabela verdade da lógica AND:

A   B   Resultado
0   0   0
0   1   0
1   0   0
1   1   1



Usamos a simbologia a seguir para a lógica AND:


A x B = Resultado

Lógica OR/OU
A lógica OR(OU em português) diz que a saída será 1 se A or B forem iguais 1(A e B no caso porque só existem esses dois termos, caso existissem mais termos pelo menos 1 teria que ser igual
a 1).Então se repararmos bem o que a lógica OR faz é somar os termos.

Veja a tabela verdade da lógica OR:

A   B   Resultado
0   0   0
0   1   1
1   0   1
1   1   1



Ao olhar a tabela acima você deve estar se perguntando:
“Ué?!?!Se a porta lógica OR soma os termo então 1 + 1 tem que ser igual a 2.”
Só que isso não acontece porque usamos a lógica para estados de base binária, ou seja, a saída só pode ser 0(desligado) ou 1(ligado).Pense assim, se fosse igual a 2 então o sistema estaria ligado duas vezes?!?!Acho que entenderam onde quero chegar.

Usamos a simbologia a seguir para a lógica OR:



A + B = Resultado

Lógica NOT/NÃO
A lógica NOT(NÃO em português) diz que a saída será 1 se a entrada NÃO for 1.Ou seja se a entrada for 0 a saída será 1, se a entrada for 1 a saída será 0.Resumindo a lógica NOT inverte os estados binários 0 e 1.

Veja a tabela verdade da lógica NOT:


Entrada(A)   Saída(Resultado = Ā)
0                             1
1                             0



Usamos a simbologia a seguir para a lógica NOT:


A = Ā

*OBS: Ā(A barrado) significa que é o inverso de A.

Alguns postulados de Matemática booleana

Antes de vermos como usar essas lógicas no RPGMaker vamos ver algumas analises que nos ajudam no ato de calcular os resultados e formar lógicas que nos ajude a criar nossos sistemas.

Teoremas de De Morgan
***OBS:Lembra do A barrado, a partir de agora no lugar de uma barra em cima da letra será usada apenas uma aspas simples(apóstrofo) para representar cada barra.

Vamos entender a afirmação abaixo.Como a barra inverte o valor(de 0 para 1 e vice versa) então se invertemos uma variável duas vezes ela será a mesma coisa de não inverte-la.
A’’ = A

Nesse próximo caso vamos usar algo conhecido como “barrão” isso significa que a barra de inversão abrange toda a expressão entre parênteses.A expressão abaixo significa que a inversão da soma de termos é igual a multiplicação dos termos já invertidos.
(A + B)’ = A’ x B’

No caso abaixo podemos ver que o processo é parecido com o do caso anterior.Onde agora a inversão da multiplicação de termos é igual a soma dos termos invertidos.
(A x B)’ = A’ + B’

A partir das analises dos teoremas de De Morgan mostrados acima fica mais fácil a compreensão de algumas lógicas, além da criação de outras como a “coincidência”(“ou exclusivo“ conhecido também como XOR), mas isso não vem ao caso, então se ficou interessado serão postados links pra saber sobre o assunto no final da aula.
Outra coisa que essas analises nos ajudam é na simplificação das expressões feitas para a lógica de seu programa, isso é muito importante.

Usando a Lógica Booleana no RPGMaker

Alguns devem estar se perguntando que diabos isso me ajudará a programar no rpgmaker, pois agora vou explicar um pouco melhor e mostrar alguns exemplos, perceberás que você já usava essas lógicas sem nem mesmo perceber.

Para usarmos essas lógicas a nosso favor no RPGMaker devemos usar as indispensáveis ferramentas:

Condições, Variáveis e Switchs.

*OBS:Ainda não passei a aula sobre condições mas já está sendo feita(falta uns retoques), então sugiro que se não saiba nada sobre condições pare de ler aqui e vá ler a aula de condições caso ela já tenha sido postada.

Primeiros vamos pensar no caso das switchs por ser mais simples.
Quando você abre o comando de “condições”  e seleciona a condição como “switch” lá na aba 1, pode se ver que é possível escolher entre “ON” e “OFF” para a condição da switch.Agora lembra-se dos nosso estados binários 0 e 1?Sim, ON e OFF são exatamente eles neste caso.Então que tal formarmos uma lógica AND com as condições para dois termos(switchs nos casos).Vamos lá então.

Primeiro nomeie duas switchs, uma A e a outra como B e deixe as duas como “OFF”.
*OBS:As switch s já começam com seu estado natural em “OFF”, mas para efeito didático use o comando e deixe como OFF as switchs.

Agora crie duas condições, onde a segunda condição se encontra no corpo da primeira.A primeira condição é que a switch A tem que estar ON, e a segunda condição é que a switch B tem que estar ON.Dentro da segunda condição coloque uma mensagem apenas para verificarmos o efeito, pode ser “A e B estão ligadas.”, desta forma:




Agora lembra da tabela verdade da lógica AND?Vamos comprovar se nossas condições do evento estão mesmo seguindo está lógica.Faça os testes um por um mudando os valores das switchs no evento conforme a tabela verdade da lógica AND e verificando os resultados.

Agora vamos ver a situação da lógica OR.
Crie outro evento e deixe no estado OFF aquelas duas switchs como no primeiro evento feito com o AND.
Agora vamos criar nossas condições.Faça a primeira condição como A igual a ON e coloque exceção.No corpo dessa primeira condição vamos colocar uma mensagem pra verificar o efeito, pode ser “A ou B está(ão) ligadas.”.Agora na exceção da primeira condição nós vamos fazer a segunda condição, que será B igual ON para o funcionamento, e não há necessidade de colocar uma condição. No corpo da segunda condição coloque aquela mesma mensagem da primeira para verificarmos o resultado.



Faça os testes assim como foi feito para a lógica AND, mas claro, seguindo a tabela verdade da lógica OR.

*Parecer uma OR, o conteúdo do corpo da primeira condição tem que ser igual ao conteúdo da segunda.

Está na hora de ver a situação da lógica NOT.
Crie outro evento e desta vez usaremos apenas a switch A, deixe-a no estado OFF.Faça a condição(sem exceção) como A igual a “OFF”.No corpo da condição coloque uma mensagem para verificarmos o resultado, pode ser “A está desligada.”.



Teste o evento verificando as duas situações da tabela verdade da lógica NOT.

Agora pense como usando esses elementos ao mesmo tempo a infinidade de “expressões” que podem ser feitas para trabalhar o seu evento, lembrando que seguindo esses princípios podem ser criadas condições para mais termos e não apenas 2 como na maioria de nossos exemplos.

Veremos agora como as possibilidades se ampliam ainda mais quando usamos a lógica aplicada com as condições e as variáveis.

Lembra daquele primeiro exemplo deste texto( 3 + 43 = 2 ), pois é, com variáveis pode-se transformá-lo em uma lógica verdadeira.Veja o exemplo:



Exemplo bem bobo, né?Mas isso nos mostra que podemos criar condições que executem algo que queremos quando a variável assumir determinado valor.Isso significa que com uma variável temos uma switch de infinitos(teoricamente) estados e não só 2( estado 0 e 1) como nossa switch convencional.
Lembrando que nosso comando de condição no caso de variáveis nos dá ferramentas que nos permite comparar uma variável em relação a um numero constante escolhido na hora ou á uma outra variável , usando os operadores comparadores igual, maior que, menor que, maior ou igual, menor ou igual, diferente.
A partir destes comparadores podemos criar condições que trabalham em um intervalo de valores para a variável ou em casos únicos.
Operando variáveis com a matemática comum para efetuar seus cálculos para o sistema e depois utilizando estes comparadores das condições pensando na lógica é possível fazer N coisas, lembrando ainda que o comando de variáveis te dá acesso a muitos valores correntes do jogo.

Lição de casa:

1-Faça um evento que vai envolver todas as lógicas desta forma:
Lógica OR com 4 termos, no corpo de cada condição desta OR coloque uma lógica NAND(NOT + AND, pense um pouco e descubra como ela funciona) de 2 termos.Faça os testes e monte a tabela verdade do evento.
2-Faça um evento que mostre uma mensagem a cada 10 passos(tanto faz a mensagem), mas isso só acontece se estiver andando na metade do lado esquerdo do mapa(faça um mapa de 20x15), ou seja, mesmo que der 10 passos estando do lado direito a mensagem não aparece.

*OBS:Não precisa ser precisamente 10 passos pode ter uma pequena variação
***No final da página está o link para o projeto(no RMXP) com os eventos feitos nos exemplos e o evento com a resposta dos exercícios.Também está a tabela verdade do primeiro exercício(em anexo).

Comentário

Bom, acho que esse reforço de lógica ficou bem melhor que o antigo que tinha feito e postado na RMB ^^.Demorei pra fazer esse reforço, mas acho que valeu a pena e espero que continue ajudando muita gente.

Link para:
nenhum

Extras:
nenhum

5ª Aula-Cortando “as sete cabeças do bicho” chamado variável

Aprendendo a programar por eventos
por zecomeia

5ª Aula-Cortando “as sete cabeças do bicho” chamado variável

Introdução


Estou cada vez melhor na invenção dos títulos das aulas, não?(¬.¬)’.
Bom como deu pra perceber, vamos aprender sobre variáveis hoje, então muita atenção nessa aula porque sei que muitos tem duvidas sobre isso, e outros que já sabem podem acabar aprendendo algo que não sabia, ou sei lá, XD.
Chega de encher lingüiça.

O que é uma variável?

Basicamente variável é algo que não é constante, ou seja, não tem um valor fixo(isso não quer dizer que não podemos fazer com que uma variável tenha o mesmo valor pra sempre).Mas no Rmaker vendo assim de grosso modo, elas(as variáveis) servem para armazenarmos valores, podendo ser mudados ao decorrer dos processos.

Explicação dos comandos das variáveis

Vamos seguir a imagem abaixo para nos orientar:




1.Variável

Aqui determinamos a qual(is) variáveis iremos atribuir um valor.Qual/Quais?
Isso mesmo, qual ou quais, vejamos abaixo o porque:



Caso selecione “individual“, como na imagem acima, terá a possibilidade de escolher uma única variável para operarmos com ela.



Caso selecione “desde“, como na imagem acima, terá a possibilidade de determinar um intervalo de variáveis que serão operadas, ou seja ,vão todas receber o mesmo valor.

Pronto, já foi um passo.Agora que já aprendemos a definir as variáveis que iremos usar vamos entender o que cada operador  faz.

2.Operação

Não é nada mais do que a nossa velha amiga matemática.Mas por via das dúvidas, vou explicar um por um.




Substituir: ele atribui o valor que for colocado à variável independente de seu valor anterior, em modo mais rude e de fácil compreensão, é dada uma ordem a variável de que ela valerá aquele valor.




Adição(+): adiciona o valor à variável,ou seja, soma o valor escolhido ao valor atual da variável.




Subtração(-): subtrai o valor à variável,ou seja, subtrai o valor escolhido ao valor atual da variável.




Multiplicação(*): multiplica o valor à variável,ou seja, multiplica o valor escolhido ao valor atual da variável.




Divisão(/): divide o valor à variável,ou seja, divide o valor escolhido ao valor atual da variável.




Resto(%): atribui ao valor do resto da divisão entre o valor atual da variável e o valor do operando.EX:

10/3 = 3 e resto 1
Então
10%3 retornará o valor 1 à sua variável

*OBS:Não confunda com porcentagem só porque usa o mesmo símbolo, por isso mesmo citei um exemplo nesse caso de resto para deixar bem claro.

3.Operando

É o segundo termo que compõem sua operação.

Constante:Pode ser definido o valor desejado para operação.

Variável:Pode-se definir o valor de uma outra variável como operando.

Aleatório:Define um intervalo entre dois números fazendo com que o operando assuma um valor entre o primeiro valor do intervalo ao segundo valor definido nesse intervalo.

Item:Define o valor do operando com a quantidade de itens possuídos do item determinado para o operando.

Herói:O valor do operando assumirá o valor do atributo escolhido de um determinado personagem á sua escolha. Primeiro escolhe de qual o personagem será buscado o valor do atributo e em seguida escolhe o atributo do mesmo.Os atributos a disposição são:

   °Nível: Atribui a variável o valor do nível em que está o personagem escolhido.

   °EXP: Atribui a variável o valor da experiência do personagem escolhido no momento.

   °HP: Atribui a variável o valor do HP do personagem escolhido no momento.

   °MP: Atribui a variável o valor do MP do personagem escolhido no momento.

   °HPMax: Atribui a variável o valor do HP máximo do personagem no nível em que ele está.

   °MPMax: Atribui a variável o valor do MP máximo do personagem no nível em que ele está.

   ºForça: Atribui a variável o valor da força do personagem no nível em que ele está.

   ºDestreza: Atribui a variável o valor da destreza do personagem no nível em que ele está.

   ºAgilidade: Atribui a variável o valor da agilidade do personagem no nível em que ele está.

   ºMagia: Atribui a variável o valor da magia do personagem no nível em que ele está.

   ºAtaque: Atribui a variável o valor do ataque do personagem no nível em que ele está.

   ºDef.Física: Atribui a variável o valor da def. física do personagem no nível em que ele está.

   ºDef.Mág: Atribui a variável o valor da def. mágica do personagem no nível em que ele está.

   ºFugir: Atribui a variável o valor da evasão do personagem no nível em que ele está.

   ºInteligência: Atribui a variável o valor da inteligência do personagem no nível em que ele    está.

*OBS:Alguns atributos aqui são específicos de um RPGMaker, ou seja, pode ter em um e no outro não, ou pelo menos ter os nomes diferentes.

Inimigo:O valor do operando assumirá o valor do atributo escolhido de um determinado inimigo do grupo inimigo(8 inimigos no Maximo por grupo) á sua escolha. Primeiro escolhe de qual o inimigo(1º,2º...8º) será buscado o valor do atributo e em seguida escolhe o atributo do mesmo.Os atributos a disposição são os mesmo dos heróis.

Evento:Deve escolher como parâmetro se é o próprio evento(ou algum outro evento) onde está programando ou se é o personagem do mapa.A partir daí  escolher entre:

   °Coor.X: Coordenada X de onde se encontra o personagem/evento no mapa.

   °Coor.Y: Coordenada Y de onde se encontra o personagem/evento no mapa.

   °Direção: Direção pra onde o personagem/evento esta apontado/olhando.Os valores são:

CIMA = 8

ESQUERDA = 4  

DIREITA = 6

BAIXO = 2

   °CoordenadaX da img: Coordenada X de onde se encontra o personagem/evento na “TELA“.

   °CoordenadaY da img: Coordenada Y de onde se encontra o personagem/evento na “TELA“.

   ºMapa:Tag do Terreno onde se encontra no momento.Configure a
Tag dos Tiles no Database.

*OBS:Alguns atributos aqui são específicos de um RPGMaker, ou seja, pode ter em um e no outro não, ou pelo menos ter os nomes diferentes.

Outro:O valor do operando assumirá o valor do item escolhido na lista abaixo:

   ºID do Mapa: ID do mapa onde se encontra.

   ºNúmero de Personagens: Retorna no valor o número de personagens no grupo.

   ºDinheiro: O valor será a quantia em dinheiro do jogador.

   ºNúmero de Passos: Quantos passos o jogador deu durante o jogo.

   ºTempo de Jogo: Tempo total jogado.Assumirá o valor em segundos.Ex:
   2min e 45seg de jogo =     165 segundos.

   °Timer: Valor corrente do Temporizador, caso não estiver ocorrendo o evento de um    temporizador o valor retornará como “0”(zero).O valro também é dado em segundos.

   ºNúmero de Saves: O operando assumirá o valor de quantas vezes o jogo já foi salvo.

Encerrando o Assunto...

Aqui foi explicada, coloquemos assim, a parte “teórica” das variáveis.Futuramente veremos em aplicações práticas o quão importantes e úteis elas são, e o material usado para essas analises futuras serão sistemas por eventos desenvolvidos por mim na maioria(poucos estão postados no forum), além de outros que acho que serão de grande utilidade no aprendizado.Uma prévia do conteúdo:
°HUDs;
°Contadores;
°Próprio Banco de dados;
°Uso geral;
°”Sensores”;
°E mais.

Lição de Casa

Para quem acompanha a aula:
Faça um evento em um mapa qualquer, onde:
Quando o tempo for maior ou igual a 6 minutos ganhe um número aleatório de poções
que pode ser de 0 a 10, e que só aconteça uma vez.
Quando ganhar o item tem que mostrar uma mensagem dizendo quantas poções ganhou, respeitando a seguinte regra:
Se ganhar 0 poções aparecer: “Você não ganhou poção”.
Se ganhar 1 poção aparecer: “Você ganhou uma poção”.
Se ganhar qualquer número que esteja de 0 a 10 e não seja nenhum dos citados acima:
“Você ganhou poções”.

*Use apenas o que foi ensinado nas aulas anteriores.
*Lembre-se, assim como na matemática existe mais de um caminho para obter o resultado de uma conta.

Comentários
Acho que essa aula ta bem “mastigada” e fácil de entender toda a parte “teórica” das variáveis para que em breve podemos aplicar na prática nos conhecimentos.
Até Mais pessoal ^ ^

Link para:
nenhum

Extras:
nenhum

4ª Aula-O "leão manso" chamado switch

Aprendendo a programar por eventos
por zecomeia

4ª Aula-O "leão manso" chamado switch

Introdução


Interessante o título dessa aula, não?Espero que com essa aula quebre esse obstáculo de muitas pessoas que acham difícil a switch.Então vamos lá pessoal.

Switch

A tradução de switch seria "alavanca", e é uma alavanca bem simples, porque só tem duas posições,
ON ou OFF(Ligado ou Desligado).
Uma switch trabalhando sozinha não tem sentido, porque vai estar ligado ou desligando o que?Por isso usamos ela em conjunto com "condições"(fork condition).Mas por enquanto fiquemos apenas com as switchs.

Estado inicial no RMaker

Todas as switch se não foram ativadas por você enquanto foi feito seu jogo ficam naturalmente no estado OFF,na programação com RGSS é diferente, se não for declarado um valor para a variavel, no caso switch, ela começa no estado "nil", nulo em português, mas esquecendo RGSS, sendo o outro estado ON(ativada).
Com isso percebemos que com uma switch temos duas possibilidades/estados que podemos usar, ON/OFF.
Ágora um exemplo na prática:




Aí foi um exemplo bem simples(alias tudo com switch é simples) do uso de switch.Podem perceber que foi usada condições(usamos duas, mas o mesmo evento é possível com uma, veremos na aula de condições).

*OBS:As frases escritas em verde no editor de eventos são "comentarios", o comentario é usado para organizar seu evento, então não afetam em nada do funcionamento do mesmo.




Viram switch é tão fácil que não tem mais o que dizer.
Apenas estudem e leiam o reforço de "lógica"(ele ajudará pra melhor compreensão do uso de switchs, variaveis e condições).

Comentários

Como já foi citado, leia o reforço de "lógica" porque daqui por diante ele ajudará muito na aprendizagem do uso das switchs, variaveis e condições.
Então até lá.

Link para:
nenhum

Extras:
nenhum

3ª Aula-Finalmente vamos aos comandos

Aprendendo a programar por eventos
por zecomeia

3ª Aula-Finalmente vamos aos comandos

Introdução


Agora começaremos a ver os comandos um por um, lembrando que estas aulas são generalizadas, ou seja, valem para qualquer RPGMaker do 2000 ao VX(não lembro direito como é o SIM 95 por não ter usado ele muito tempo), portanto comandos mais especificos ou funções adicionais em alguns comandos que foram implantados em alguns RPGMakers não serão explicadas aqui, e sim somente em futuros reforços.

Vamos começar pelo comando Mostrar Mensagem

Vocês devem estar pensando aí "Ah!Vou matar o Zecomeia!Depois de todo esse tempo ele me vem com 'Mostrar Mensagem'?!?!?".Mas calma, essas aulas não foram feitas só para você(lembre disso antes de escrever um papelzinho com o meu nome para colocar na geladeira, hehe xD).

Então vamos logo com isso

O comando Mostrar Mensagem

Pois é, ele faz exatamente o que o seu nome demonstra(alias, como todos os outros).O comando Mostrar Mensagem mostra uma janela(ou não) com uma mensagem na tela.
Bem simples, digita-se a mensagem que vai aparecer naquela parte do programa e pronto.

Só que pra não ficar tão limitado essa função existem alguns códigos(que variam dependendo de qual RMaker você usa)que são muito utéis, basicamente são:

Comando que mostra o dinheiro
Comando que mostra o valor de uma variável
Comando que mostra nome do Heroi
Comando que muda cor das letras na mensagem


Esses são os mais básicos que todos RMakers tem, existem outros mas só serão explicados em apendicês.

*OBS:Não foram colocados os códigos por serem diferentes de um RMaker para outro, então só foi mencionado que existem codigos com está função.Para ver o uso destes codigos na prática visite o reforço de "Trabalhando Amplamente as Mensagens".

Viram como foi rápido, nem doeu(xD).Agora veremos dois comando que andam juntos com o Mostrar Mensagem, que são "Opções de Mensagem"(Uau!) e "Mostrar Escolhas".O segundo nem tanto quanto o primeiro, mas achei bom colocar porque geralmente colocam-se mensagens antes desse comando(e também para adiantar as coisas).

Então primeiro vamos com...

...Opções de Mensagem(Forma de exibição da mensagem + Gráfico de Face da mensagem)

O Básico deste comando(nem sei se posso dizer que tem mais do que o básico nele)é se irá mostrar a mensagem dentro de uma janela ou não, e se mostrar em que posição a janela abrirá, posições essas que são:

ACIMA => A mensagem aparece na parte de cima da tela

CENTRO => A mensagem aparece no meio da tela

ABAIXO => A mensagem aparece na parte de baixa da tela



Outra função deste comando é de mostrar ou não uma face junto da mensagem(com exceção do RMaker XP).

Pronto acabou a explicação das Opções de Mensagem.


*OBS:NÃO deixe de ler o reforço "Trabalhando Amplamente as Mensagens".

Agora vamos ver "Mostrar Escolhas"(ou Exibir Opções)

Este comando mostra uma janela com até 4 opções a serem escolhidas pelo jogador.Ou seja, é uma espécie de CONDIÇÃO(Uau!, xD).O comando funciona desta maneira:

Ao abri-lo na janela de comando do evento, aparecerá uma imagem deste tipo ou parecida(depende do seu RMaker):



Siga está imagem abaixo para as explicações



Podemos ver onde está envolvido pelo retangulo azul marcado por mim que existem 4 campos de escolha que podemos escrever o que quisermos neles(não só Sim ou Não).O Número de opções que aparecerão para o jogador escolher durante a execução do comando no jogo são apenas até qual o campo foi preenhido.Exemplo:




No exemplo acima irão aparecer 3 escolhas para o jogador que são "Zecomeia", "aonde está", "o Catatau?".

Agora outro exemplo, para esclarecer bem:



Mesmo não escrevendo na terceira opção ela existirá porque foi declarada a existência de uma quarta opção.

*OBS:Se você apertar a barra de espaço(por exemplo) em uma opção, ela aparecerá porque foi encarada como exitente apartir do momento que há algo no campo da opção(mesmo não sendo visível).

Agora olhe a parte que está dentro do quadro vermelho que marquei(e leia bem onde está circulado de vermelho, hehe).As opções que podem ser marcadas neste quadro servem para definir o que acontecerá caso ao invés de apertar a tecla de confirmação(digamos o ENTER)aperte a tecla de cancelamento(digamos o ESC).
E você pode escolher entre acontecer uma das opções, não acontecer nada(ignorar) ou definir a sua propria maneira(cancelar, aparecerá como se fosse uma exeção para colocar o que vai acontecer quando cancelar).

*Caso não tenha entendido, faça teste com estes comando até entender.

Lição de Casa

Primeiro quero explicar como funcionará a lição de casa.Quem estiver acompanhando e queira participar(ou seja não é nada obrigatório, claro) a aula em questão basta postar com o evento feito em anexo.

Vamos lá então faça o seguinte:

Primeiro mostrar sem janela com uma mensagem na cor vermelha escrita:
-O que deseja fazer?

Depois faça com que apareça 2 escolhas, que são:
"Mostrar nome do primeiro Herói"
"Mostrar dinheiro"

E para terminar, faça com que caso o jogador aperte o botão de canceamento apareça a mensagem:
-Obrigado, volte sempre, em branco.

Comentários

Nesta aula já começamos a aprender os comandos e continuaremos nas outras aulas, sempre pelos mais simples até chegar a mais complicados.

Link para:
nenhum

Extras:

nenhum

2ª Aula-Como o maker interpreta os comandos de seu evento

Aprendendo a programar por eventos
por zecomeia

2ª Aula-Como o maker interpreta os comandos de seu evento



Introdução

Pelo visto ainda não veremos nenhum comando nesta aula(não formalmente), entretanto esta aula é importante para construirmos um evento.


Como o maker interpreta os comandos de seu evento

Como assim?Digamos que o programa tem que começar de um ponto a executar o evento.
E essa interpretação é simples de entender.Vejamos o exemplo abaixo:





Bem simples certo.Execute o jogo e teste seu evento.
Ao pressionar a tecla de frente com o gráfico de seu evento, executará os comandos que nós colocamos no evento, que seriam, na ordem:



e em seguida...



Bom qual o meu objetivo ao fazer esse evento e executa-lo?É simples, observando as "saídas" entendemos as "entradas".Como assim?O que quero dizer é que observamos o efeito para estudar as causas.

Então vamos começar a análise.
Ao executar o jogo o que foi a primeira coisa que percebemos sobre o nosso evento?Aposto que você pensou "foi o gráfico do evento"(hehe).Bom é isso mesmo, a primeira coisa a ser executada no evento independente do "Iniciar Quando" é o gráfico que colocamos.E junto com o gráfico vem "opções" e "movimento" porque se referem ao gráfico.
Porém, podemos afirmar isso porque não colocamos nenhuma "condição do evento".
Isso mesmo, pra termos certeza desta ultima afirmação abra nosso evento e em condições do evento selecione uma switch qualquer como condição(lembre-se as switch iniciam no estado de OFF, e "condições de evento só tem a opção de a switch estar ON).
Agora execute o jogo e veja o resultado.

O que aconteceu?O nosso evento(nem o nosso gráfico do evento) apareceram.Isso porque dêmos uma "condição do evento".Essa condição pode ser interpretada da seguinte forma:

"Se SWITCH estiver ligada(ON)
Continue a execução do evento"

Onde quero chegar com isso?No corpo do primeiro evento não havia condições, e a primeira coisa a ser executada foi o gráfico do evento.Daí podiamos dizer que a primeira execução do evento é o gráfico, mas para termos certeza colocamos uma condição do evento e vimos que a primeira afirmação não era verdadeira.

Conclusão:vimos que com pequenos testes conseguimos testar o funcionamento do evento, e isso é muito importante, sempre que houverem dúvidas faça testes como esse e analise suas "entradas" e suas "saídas".

Agora voltando onde estavamos, a execução do programa está seguindo a seguinte ordem:

Se satisfeita continuar execução
 
*Caso houver dúvida não exite em perguntar.

Bem o que faltou em nossa análise?Acho que vocês devem estar perguntando "e o Iniciar quando?".Bom, é isso mesmo que restou, mais é bem simples, viram que os comandos de nosso evento(as duas mensagens que fizemos) só aparecem quando "pressionamos a tecla" em frente com o evento.Isso porque a condição que selecionamos em "iniciar quando" foi "pressionar tecla".
Esperimente trocar estas opções e veja os resultados.

Será que acabou toda análise?Não.Falta ainda três coisas muito importantes:
"Atualização do evento", "Comandos em outra página" e "Parar de satisfazer a condição".

1.Atualização do evento
Essa é simples de entender.Nada mais é, do que atualizar o evento após o fim de todos os comandos.Como assim?É o seguinte, depois que tudo que falamos da execução do evento foi satisfeito(as condições, etc), aí sim começa a ser executada a parte chamada "comandos de evento".
Voltando à análise, percebemos que as mensagens que colocamos para aparecerer no evento seguiram a ordem de cima para baixo.É assim mesmo a ordem de execução dos comandos de evento.
Então agora sabemos que após satisfeitas as condições o evento começa a execução da primeira linha até a ultima.
Então o que acontece quando termina de executar a ultima linha do evento?É aí que vem essa tal "atualização do evento".A atualização irá verificar se todas aquelas condições impostas inicialmente continuam sendo satisfeitas.Se continuarem satisfeitas ele irá executar o evento novamente, e assim vai seguindo o ciclo até que deixe de satisfazer as condições OU entre em ação uma página de numeração superior.Como assim?Vamos entender vendo agora "Comandos em outra página".

2.Comandos em outra página
Basicamente o que acontece é que o maker começa a verificar as condições do seu evento da página de maior numeração para a menor.Ou seja, mesmo que todas as páginas do seu evento tenham todas as condições satisfeitas, o programa vai executar a de maior numeração.
Resumindo a prioridade de execução vem da maior para a menor.
Daí percebemos que se queremos deixar de executar uma página para outra basta deixarmos a próxima página em prioridade mais alta e com uma condição diferente da primeira e que essa condição não seja satisfeita ao mesmo tempo da primeira.
Entenderemos melhor com a explicação a seguir.

3.Parar de satisfazer a condição
Após satisfeita a condição do evento, será executado o mesmo até a ultima instrução(ultima linha) mesmo que no meio da execução seja imposto algo que faça a condição do evento deixar de ser atendida.Pareceu meio confuso, mas não é.Modifiquemos nosso evento desta forma:




Nós colocamos a condição do evento para que funcione com a switch0001 no estado ON, e no corpo do evento colocamos  primeiramente uma mensagem, depois desligamos a switch que o evento necessita para funcionar, e em seguida colocamos outra mensagem.
Para ativarmos a switch crie um outro evento, e o configure desta forma:





Apenas colocamos para que esse evento ative a switch que nós
precisamos para que o outro evento funcione.


Ao executar o jogo e ativar a switch, qual foi o resultado quando executamos o evento?


1°Apareceu a primeira mensagem
2°A switch desligou(fazendo o gráfico do evento sumir)
3°Foi executada a segunda mensagem mesmo com a switch da condição desligada.


Viu como é simples.Isso é utilizado a todo tempo quando está se programando um evento.Usamos isso para finalizar uma página e iniciar outra, ou finalizar um evento e iniciar outro.



Lição de Casa

Abra seu maker e fique ensaiando possibilidades, treine bastante até não restar dúvidas do funcionamento.
*novamente repito,NÃO exite em perguntar em caso de dúvida.


Comentários

Parece que essa aula não tem nada de mais ao primeiro olhar, mas ela é sim MUITO IMPORTANTE, principalmente pra quem está começando.

Link para:
nenhum

Extras:
nenhum

1ª Aula-Apresentação e conhecendo a interface de um evento

Aprendendo a programar por eventos
por zecomeia


1ª Aula-Apresentação e conhecendo a interface de um evento


Apresentação


Estou desenvolvendo estas aulas de programação por evento na mais pura e simples intenção de ajudar quem quer aprende-la mas não sabe por onde começar,então,comece por aqui.
A intenção deste trabalho NÃO É ensinar a mexer com o maker, mas sim a programar com eventos, ou seja, aqui você não aprenderá a criar um mapa, a usar as ferramentas da interface de criação do mapa, nem a usar seu Database(a menos que formos usar algo do database para um evento).


Conhecendo a interface de um evento


Primeiro quero deixar claro que eu farei este trabalho usando o RPGMaker XP, mas estas aulas valem para qualquer maker.Existem diferenças em alguns comandos de um maker para outro, mas o que vamos abordar com estas aulas é o essencial que qualquer RMaker tem(existirão reforços específicos no final, podendo também tirar duvidas dos mesmo no post em que o assunto é abordado, mas espere chegar até a aula desejada não pergunte antes).

Para acompanharem melhor abram seus makers durante a leitura.
Hoje, como titulo já diz, vamos conhecer a interface de um evento.O que é a interface de um evento?É apenas aquela janela que abri quando criamos um evento, veja imagem abaixo(lembre-se, consequentemente as screen shots seram do maker XP):






Viram, parece bem fácil(porque é fácil).Como podemos ver não é como um "painel de avião"(ainda bem).Agora veremos o que cada coisa faz.

*Siga as numerações coloridas da imagem abaixo








1.Nome:
Quando criar um novo evento ele é autonomeado com "EV".Mas esse nome pode ser alterado se desejado.Alterar o nome daquele espaço não irá interferir em nada além da organização.

2.Páginas(abas):
Cada nova página criada, surgi uma nova aba com a numeração da mesma(1,2,3,4...).

3.Ferramentas da página:
São cinco ferramentas(Nova Página,Copiar Página,Colar Página,Deletar Página,Limpar Página) com nomes autoexplicativos.

4.Condições do evento:
São as condições para poder iniciar a execução de seu evento, pode-se optar por não colocar condições.Estas condições são mais limitadas do que a do comando "Condições"(Fork conditions ou If[fork]), porém ajuda a resolver algumas situações e a deixar mais complementado o evento.

5.Gráfico:
Basta dar dois cliques no quadro de gráfico e escolher o gráfico que o evento terá durante a execução da página(lembre-se só da página em que colocou. Pode se optar por colocar gráficos diferentes nas outras páginas ou por não colocar).

6.Movimento:
Tipo => pode se ecolher por deicha o evento parado selecionando o tipo como "Fixo".Caso deseje que o evento se mova terá 3 opçoes:
Aleatório - como nome já diz,o moviento é aleatório, ou seja, nem você sabe por onde o evento vai se movimentar.
Seguir Héroi - novamente como o nome também diz, o evento seguirá em direção ao héroi(personagem com que está jogando)
Pré-Definido - Ao escolher esta opção será liberado o opção/comando "editar rota", clique nesta opção e abrirá uma janela com vários comandos a sua deposição que serviram para montar a rota do evento e possíveis ativações de "switchs".
Vel(velocidade) => é a velocidade com que o evento vai se deslocar.
Freq(frequencia) => é a frequencia com que a animação do evento vai mudar durante o deslocamento ou durante a opção de animação.

7.Opções:
Animação[Mov.] selecionada fará com que o evento só tenha animação enquanto se movimenta.
Animação[fixa] selecionada fará com que o evento só tenha animação enquanto está parado.
*Ao selecionar as duas opções acima, o evento terá animação enquanto está parado e enquanto está em deslocamento.
Direção fixa fará com que o evento continue na direção selecionada no gráfico mesmo estando em movimento.
Atravessar selecionado fará com que o gráfico do evento possa ser atravessado pelo héroi, ou seja, não será mais um obstáculo.
Alta prioridade fará com que o "layer"(a camada)em que está gráfico do evento sejá sempre maior do que a do héroi.Ex:crie um evento, coloque um gráfico de um personagem, e rode o jogo.Vá para baicho do evento com o heroi(fique encostado com as pernas do grafico do evento).Veja o efeito e depois repita a experiência com a opção "alta prioridade" selecionada no evento criado anteriormente.

8.Iniciar Quando:
Simplesmente você escolhe uma outra condição para o inicio do evento.
Pressionar Tecla selecionado: o evento só iniciara quando pressionar a tecla "Enter" junto ao evento.
A diferença que existe entre "ao tocar Heroi" e "ao toca (evento)" é que o evento só vai iniciar na primeira situação se o heroi encostar no evento, ou seja, se o heroi estiver parado e o evento encostar no heroi nada acontecerá,já na segunda situação(ao tocar (evento)), o evento começará quando o evento tocar o heroi, ou seja, mesmo se o heroi estiver parado se o evento toca-lo será executado o evento programado.(teste estas situações caso hajam dúvidas)
Início Automático - O evento será ativado automaticamente, sem nenhum ativador.
Processo Paralelo - É a condição para um evento ser executado, neste caso ele é sempre executado em "paralelo" com os demais eventos, quaisquer que sejam eles.

9.Comandos de evento:
É o espaço onde criamos a função de nosso evento.

10.Finalizando o evento:
Ao clicar em "aplicar" todas as novas informações ali colocadas já estarão "fixadas"(salvas) temporariamente.Porque temporariamente?Porque se você fechar o Maker e desejar não salvar as alterações então nada que foi feito após aberto o maker será salvo.
Ao clicar em "OK" terá o mesmo efeito que "aplicar"a única diferença é que em aplicar a janela do evento continua aberta, e em OK ela se fecha.
"Cancelar" fecha a janela do evento sem salvar as alterações, é como se nem tivesse "mexido" no evento.


***OBS(7.Opções):em alguns makers essas opções são diferentes e estariam em posição do evento.

Lição de Casa

Bom acabamos nossa primeira aula.Como foi a primeira vimos pouco conteúdo(e básico).
Como lição de casa apenas espero que estudem(quem ainda não conhece o conteúdo desta aula) caso ficou com dúvidas, e não esqueçam de postar as dúvidas aqui no tópico.

Comentários

Então pessoal, gostaria que comentassem sobre a ideia de aulas de programação por evento, se está ficando bom, no que pode melhorar.Estou começando com este trabalho ainda, mas espero que cheguemos longe.

Link para:
 

nenhum

Extras:
nenhum