Como testar se imagens de sprites colidiram em um jogo

Bom dia pessoal.

Estou desenvolvendo um jogo com java e swing e preciso adicionar blocos na tela do jogo, de forma que o sprite principal do jogo não consiga passar por cima dos blocos. Neste caso, ao bater em um bloco o personagem não consegue avançar. Da mesma forma, preciso testar se um sprite colidiu com outro.

Agradeço.

Olá Danyel,

Minha sugestão é usar o método intersects da classe Rectangle do próprio java, segue a documentação

http://docs.oracle.com/javase/1.5.0/docs/api/java/awt/Rectangle.html#intersects(java.awt.Rectangle)

[]s

Estou trabalhando somente com JFrame, e imageIcons. Os sprites e os blocos são todos imageIcons. Será que funciona mesmo assim com o método intersects, que não estou utilizando nenhum objeto da classe retangle? Valeu.

Danyel,

Mesmo você trabalhando com imageIcons, eu imagino que vocês tenhas as coordenadas, largura e a altura destes elementos certo?

Caso sim, basta você criar instâncias da classe Rectangle com esses valores de cada elemento e realizar a comparação.

Uma boa idéia seria encapsular o Rectangle e os imageIcons em classes, para evitar ficar criando várias instancias de Rectangle.

Espero ter sido claro =)

[]s

Ok. Vou tentar desenvolver. Logo te mando um feedback.
Valeu.

Só tem que ter cuidado com algumas coisas, se for a ponta de uma nave arredontada por exemplo, aí pode gera uma colisão sem que realmente o objeto tenha colidido visualmente.

Inves de ImageIcons, voce pode desenhar diretamente em um componente o jogo inteiro, e fazer colisoes a partir de retangulos.

De uma olhada na parte de Java no PontoV que pode te ajudar.