Salut pour ton problème tu peux utiliser les méthodes implémentées dans l'api Java en particulier les méthodes de la classe Rectangle.
Pour la détection de collision j'ai utilisé l'algorithme qui consiste à dire que si un des points du premier rectangle est contenu dans le deuxième alors les rectangles sont en contact, existe-t'il un algorithme plus facile à mettre en oeuvre, dans un aspect mathématique je ne vois pas d'autre solution mais peut-être existe-t'il des méthodes qui renvoie true quand deux labels se piétine
La classe Rectangle implémente la méthode :
Cette méthode renvoie un booléen a true si deux rectangles rentrent en collision. De plus tu peux avoir une instance de Rectangle directement à partir de ta classe Label via la méthode getBounds.
1 2 3 4 5 6 7
|
Label hello = new Label("Hello");
Label world = new Label("World");
//Placement des labels etc...
if(hello.getBounds().intersects(world)){
//Les actions à effectuer en cas de collision
} |
Le deuxième problème, probablement le plus corsé... J'aimerais pouvoir faire savoir à mon programme sur quelles surfaces les rectangles se sont percuté.
La classe Rectangle permet aussi d'obtenir la surface commune à deux Rectangles qui sont rentrés en collision. Tu peux l'obtenir via la méthode
Pour plus d'informations sur son usage je t'invite à lire la documentation de la classe Rectangle dans l'api Java.
J'espère t'avoir aidé à résoudre ton problème.
Partager