Olá pessoal.
Venho aqui para compartilhar com vocês a segunda parte do meu tutorial sobre movimentos com pictures.
PRÉ-REQUISITOS: É bom que você já tenha lido a primeira parte do tutorial, pois é nele que me basearei e trarei explicações novas.
O tutorial você pode encontrar Aqui
Após ler você terá uma ideia do que é, e poderá acompanhar melhor o tutorial.
Mais mesmo assim, você poderá acompanhar normalmente o tutorial.
Introdução:
No tutorial anterior mostrei como fazia para mostrar uma picture na tela e fazer com que ela se mova, atráves dos comandos do teclado.
Ok, muito bom!!
Dá para fazer um joguinhobem legal né?
Pórem como muitos devem ter percebido a imagem se move pela tela, certo, mais não somente pela tela mais tambem
fora dela.
Como assim?
Você aperta o right, ela se move até o final da tela mais de repente some.
:Oo:
Porque acontece isso?
Porque ela sai fora da tela, e continua lá se movendo, ai pensamos que ela sumiu, mais na verdade ela ainda está se movendo só que não estamos vendo.
Okay, isso é um problema porque se derepente se tá com um joguinho, o jogador coloca ela fora da tela e perde ela, concerteza ele vai ficar constrangido.
Então só há uma maneira de impedir que aconteça isso.
Como?
Impedindo que ela saia da tela.
Mais como eu faço isso?
Será isso que você vai aprender nesse tutorial. xD
Parte I - Conceitos
Nesse tutorial ensinarei uma das tecnicas utilizadas na programação de jogos, para detectar o que chamamos de
colisão.Mais o que seria colisão?
E quando um objeto bate com outro na tela por exemplo, podemos citar quando o npc bate com a parede e não passa por cima dela, ele anda para outro lugar.
Tambem quando o heroi atinge os limites do mapa e para de andar, não desaparece da tela como a imagem do nosso tutorial.
Tudo isso é chamado de colisão, e nesse tutorial você aprenderá a fazer a imagem "colidir", com os recantos da tela.
Parte II - Explicação
Para detectar a colisão teremos que realizar alguns calculos matematicos.
Observe a figura a seguir:
Se observarmos iremos perceber que a
largura da tela é de: 640pxs
E a
altura é de: 480px
É bom que se lembre desses tamanhos porquê iremos usar eles mais na frente.
Analisando a A imagem do nosso tutorial iremos perceber que as suas dimensões são as seguintes:
Largura: 135pxs
Altura: 200pxs
Usaremos a largura e a altura da tela junto as dimensões da imagem para detectar a colisão.
Parte III - Botando a mão na massa
Primeiramente abra o projeto no rpg maker do tutorial, caso não tenha baixe-o aqui.
Abra o o banco de dados e localize o evento comum
Mover Pictures.Ai estará quase toda a logica do nosso sistema.
Primeiramente crie quatro condições vazias.
Agora configure as condições como a seguir:
1ª =>
variavel Y maior ou igual a 02ª =>
variavel X maior ou igual a 03ª =>
variavel X menor ou igual a 5044ª =>
variavel Y menor ou igual a 280Ok, feito isso pegue a seguitne condição:
<>Condição: Pressionar Tecla Baixo
<>Opções de Variável: [0002: Y] += 4
<>
FIMRecorte e cole ela dentro da quarta condição que criamos, a de
variavel Y menor ou igual a 280.
Agora pegue a seguinte condição:
<>Condição: Pressionar Tecla Direita
<>Opções de Variável: [0001: X] += 4
<>
FIMRecorte e cole ela dentro da 3ª condição que criamos, a de
variavel X menor ou igual a 504Feite isso agora pegue a seguinte condição:
<>Condição: Pressionar Tecla Cima
<>Opções de Variável: [0002: Y] -= 4
<>
FIMRecorte e cole ela dentro da 1ª condição que criamos.
E por fim pegue a seguinte condição:
<>Condição: Pressionar Tecla Esquerda
<>Opções de Variável: [0001: X] -= 4
<>
FIME a cole dentro da segunda condição que criamos.
Feito isso rode seu game e inicie o sistema apertando "Z" e escolhendo "Sim".
Nossa!!!
A imagem não passa mais da tela.
Porquê?
Explicarei na proxima parte.
Parte IV - Como funciona o Sistema
Em breve....
Demo
Para os preguiçosos e os que tiveram problemas com o sistema baixe a demo abaixo:
http://www.4shared.com/file/93636371/f1cf5dda/Colisoes.html
Então esse é meu tutorial, eu peço desculpas porque não irei postar a 4ª parte hoje porque não tive tempo, mais em breve postarei, e enquanto isso...
Enjoy!!
Ate mais!