DOWNLOAD DOS EXEMPLOS AQUIOla pessoal!No tutorial de hoje iremos ver uma maneira de como testar uma colisao simples entre dois objetos! existe varias formas de testar uma colisao como: verificar se o objeto tocou a extremidade do outro, verificar se eles estao se intersectando, ou se ambos tem a mesma coordenada X e , e apos constatar a colisao iremos dizer como esses objetos irao se comportar durante a colisao!Vamos ver uma maneira de verificar essas colisoes com um unico metodo! entao vamos la! crie um pacote chamado tutorial10 no nosso projeto JAVAGAMES2D, e cole no pacote o nosso template pra jogos Game.java!Agora observe o codigo abaixo (leita atentamente os comentarios no codigo):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 objeto1Colediu = false; int obj2X = 400; int obj2Y = 200; int obj2W = 50; int obj2H = 50; // -------------------------------------------------------------------- // ESSE METODO VAI MOVER O OBJETO ATE A COORDENADA X = 390 // PARA QUE ELE TOQUE O OBJETO 2 // MAS NAO IMPORTA COMO ELE SE MOVA, UM METODO VAI TRATAR DE // VERIFICAR SE OUVE COLISAO OU NAO! // -------------------------------------------------------------------- public void moveObjeto1() { obj1X += 2; if (obj1X > 500) { obj1X = 0; } } // -------------------------------------------------------------------- // SE O OBJETO COLEDIR APARECERA UM TEXTO INFORMANDO!!! // ESSE METODO VAI SER CHAMANDO LA NO DENTRO DO METODO desenharGraficos() // -------------------------------------------------------------------- public void exibeTexto() { Graphics bbg = backBuffer.getGraphics(); if (objeto1Colediu) { bbg.setColor(Color.RED); bbg.drawString("UIII fui tocado!!!", 200, 100); } } // -------------------------------------------------------------------- // ESSE E O NOSSO METODO QUE VAI TRATAR A COLISAO // ESSE METODO RECEBE COMO ARGUMENTO: X, Y, W, H do Obj1 e Obj2 // NAO SE PREOCUPE NOS VAMOS EXPLICAR ESSA LAVAGEM DE CODIGO!!! // -------------------------------------------------------------------- public boolean colisao(int obj1X, int obj1Y, int obj1W, int obj1H, int obj2X, int obj2Y, int obj2W, int obj2H) { if ((obj1X >= obj2X && obj1X <= obj2X + obj2W) && (obj1Y >= obj2Y && obj1Y <= obj2Y + obj2H)) { return true; } else if ((obj1X + obj1W >= obj2X && obj1X + obj1W <= obj2X + obj2W) && (obj1Y >= obj2Y && obj1Y <= obj2Y + obj2H)) { return true; } else if ((obj1X >= obj2X && obj1X <= obj2X + obj2W) && (obj1Y + obj1H >= obj2Y && obj1Y + obj1H <= obj2Y + obj2H)) { return true; } else if ((obj1X + obj1W >= obj2X && obj1X + obj1W <= obj2X + obj2W) && (obj1Y + obj1H >= obj2Y && obj1Y + obj1H <= obj2Y + obj2H)) { return true; } else { return false; } } // -------------------------------------------------------------------- public void atualizar() { objeto1Colediu = colisao(obj1X, obj1Y, obj1W, obj1H, obj2X, obj2Y, obj2W, obj2H); moveObjeto1(); } public void desenharGraficos() { Graphics g