DOWNLOAD DOS EXEMPLOS AQUIOla pessoal!No tutorial anterior vimos uma maneira de como verificar uma colisao simples. Nesse tutorial de hoje veremos uma outra forma de verificar se um objeto colidiu com outro, no metodo anterior nao era apenas informado de que houve uma colisao, mas nao era informado de qual lado do objeto que estava sendo colidido! Entao sabendo qual lado do objeto esta sendo tocado, e possivel mandar o nosso objeto se comportar de uma maneira dependendo de onde ele foi tocado. Imagine um jogo de Corrida de Carros, caso o carro bata a sua lateral numa parede na pista, ele deve ser empurrado na direcao oposta!Muito bem.... entao vamos ao que interessa: como e essa tal tecnica? (ah lembrando que: o que ta sendo postado aqui, nao sao tecnicas oficiais padrao! e a forma como eu faco e acho mais simples e funciona! pode ser feito diversas maneiras diferente! essa e epenas uma mera sugestao!)A tecnica e a seguinte: como no tutorial anterior nos iremos tracar os pontos(pontos imaginarios... ta la mais nao ta!!!) de colisao no nosso objeto, ah! voce pode tracar quantos pontos de colisao voce quiser! dependendo do que se pretende fazer! ao ao colidir com com determinado ponto nosso objeto pode se comportar de uma maneira diferente!Observe a imagem abaixo (ah! essas imagens sao produzidas no Inkscape! sugiro estuda-las para usar na confeccao do design dos seus games!)Agora observe como o nosso codigo de colisao e simples, ele ira tratar de verificar a colisao de um unico ponto!public boolean colisao(int pontoX, int pontoY, int x, int y, int w, int h) { if ((pontoX >= x && pontoX <= x + w) && (pontoY >= y && pontoY <= y + h)) { return true; } else { return false; } }Esse metodo trada de verificar a colisao de um unico ponto!, etao voce pode tracar quantos pontos imaginarios quiser e verificar se o mesmo esta colidindo em algum objeto!colisao(x, y, x2, y2, w, h);Abaixo segue o nosso exemplo do tutorial de hoje:import java.awt.*;import java.awt.image.BufferedImage;import java.io.File;import javax.swing.ImageIcon;import javax.swing.JFrame;public class Game extends JFrame { BufferedImage backBuffer; int FPS = 30; int janelaW = 500; int janelaH = 500; // -------------------------------------------------------------------- // OBSERVEM ESSAS VARIAVEIS (ISSO PODERIA SER ATRIBUTOS DE UMA CLASSE!) // -------------------------------------------------------------------- int obj1X = 0; // COORDENADA X int obj1Y = 225; // COORDENADA Y int obj1W = 50; // LARGURA = Width int obj1H = 50; // ALTURA = Height boolean colidiuEsquerda = false; boolean colidiuDireita = false; boolean colidiuCima = false; boolean colidiuBaixo = false; int obj2X = 400; int obj2Y = 200; int obj2W = 50; int obj2H = 50; // -------------------------------------------------------------------- // ESSE METODO VAI MOVER O OBJETO ATE A COORDENADA X = 500 // PARA QUE ELE TOQUE O OBJETO 2 // E A CADA VEZ QUE ELE CHEGAR NO FINAL DA TELA, VOLTA PRA O COMECO // EM COM UMA NOVA COORDENADA Y ALEATORIA!!! // -------------------------------------------------------------------- public void moveObjeto1() { obj1X += 5; if (obj1X > 500) { obj1X = 0; obj1Y = (int)(Math.random()*100)+150; } } // -------------------------------------------------------------------- //