C'est une bonne question. Pour savoir pourquoi j'ai fait quelques recherches
Point p = new Point(0,0);
System.out.println(p.closed()); // TRUE
System.out.println(p.getPointCount()); // 1, logically
Et puis je recherche dans le repo Slick2d dans le Shape class. Je pense que ces lignes sont la raison pour laquelle cela ne fonctionne pas:
boolean result = false;
float points[] = getPoints(); // Get all points of our shape
int length = points.length; // count them. here length==1
if (!closed()) {
length -= 2; // as we see the point is a closed shape, here length=-1
}
for(int i=0;i<length;i+=2) { // Does not even enter the complicated work because length == -1
// Complicated thing to test if intersect with a lot off points
}
return result; // here return false
Voici la justification de votre problème. Je ne sais pas si c'est un bug ou si c'est la volonté des développeurs. Vous pouvez toujours configurer un problème.
En guise de solution, je conseillerais de construire un rectangle (x, y, 1,1) et de le croiser. Cela fait le travail que vous voulez parce que c'est une forme en 4 points
Pourquoi pensez-vous qu'il devrait? –
Mon hypothèse était que la méthode intersects renvoie vrai lorsque deux formes se croisent. Ce n'est pas le cas? –
[This] (https://developer.mozilla.org/en-US/docs/Games/Techniques/2D_collision_detection) pourrait être utile, il explique la théorie de base derrière la détection de collision. Dans votre cas, votre Point n'a pas de côtés (évidemment). Je suppose que la méthode n'a rien à comparer avec le rectangle. -> Avez-vous essayé de changer le rectangle et le point? – redxef