2010-11-24 41 views
0
Quelqu'un

sur un forum que je vais dit que je ne devrais pas utiliser Rectangle.intersects pour ma détection de collision, et j'utiliser cet algorithme à la place:Différence entre algorithme d'intersection et Rectangle.intersects (rectangle r)

boolean rectangleIntersects(float rect1x, float rect1y, float rect1w, 
          float rect1h, float rect2x, float rect2y, 
          float rect2w, float rect2h) 
{ 
    return (rect1x + rect1w >= rect2x && 
      rect1y + rect1h >= rect2y && 
      rect1x <= rect2x + rect2w && 
      rect1y <= rect2y + rect2h); 
} 

Mais n'est pas l'algorithme Rectangle.intersects différent, et mieux que cela? Excepté que votre algorithme utilise float au lieu de double et inclut des conditions d'égalité pour les limites.

+0

Vous pouvez trouver [cette question] (http://stackoverflow.com/questions/115426/algorithm-to-detect-intersection-of-two-rectangles) utile pour développer un meilleur algorithme d'intersection. – jball

+0

Ont-ils donné une raison à la suggestion? – jzd

+1

Vous avez dupliqué des noms de paramètres dans la signature de votre méthode. J'ai modifié mon hypothèse en fonction de ce que vous aviez prévu. – jball

Répondre