1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Não estou conseguindo implementar colisão com Rectangle em java

Tenho 3 classe: Classe Avião: tenho que usar a imagem do avião para colidir com o balão. Classe Balão: que sobe ao comando de um JButon, e se encontra om a agulha. estoura. Classe Ativa:_ onde eu vou chamar o método de colisão. O problema é que mesmo o balão encostando no avião ele não colide(coloco um system para informar se colidiu, e sempre diz que não colidiu) o balão eh uma threde e o avião também: balão sobe, e avião voa horizontalmente. eu não sei se tenho que criar algum for para testar a todo momento se colide. enfim preciso de ajuda. As classe são longas, mas a ideia é essa.

public class Aviao extends JFrame{

public Aviao(){

//codigo para imagem,etc...aviao é um jlabel

aviao.setBounds(900, 50, 127, 259);
}

}

public class Balao extends JFrame{

public Balao(){

//codigo para imagem,etc...Balao é um jlabel

 balao.setBounds(549, 428, 128, 242);
}

    public boolean colide(JLabel balao, JLabel p) {

        Rectangle r1 = new Rectangle(balao.getX(), balao.getY(), balao.getWidth(), balao.getHeight());
        Rectangle r2 = new Rectangle(p.getX(), p.getY(), p.getWidth(), p.getHeight());

        if (r1.intersects(r2)) {
            System.out.println("Colidiu");
            return true;
        }
        System.out.println("Não Colidiu");
        return false;
    }

    public void teste() {
//uma instancia de aviao acessando a Jlabel aviao


            if (colide(balao, avi.aviao)) {
                System.out.println("Colidiu");

            }

        }

}
  • tente colocar o método colide dentro de uma thread com um while(true)

    Felipe P.   18 de jul de 2014
  • Amigo, não teria como me explicar melhor, ou mostrar se fosse possivel, te agradeceria imensamente.obrigada

    gabriela   19 de jul de 2014
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags java ou faça a sua própria pergunta.