2010-04-22 10 views
3

Ma configuration actuelle n'est utile qu'une fois la collision effectuée; De toute évidence, il doit y avoir quelque chose de mieux que cela?Détection de collision par distance Java2D

public boolean CollisionCheck(Rectangle rect1, Rectangle rect2) { 
    if(rect1.intersects(rect2)) { 
     return true; 
    } 
    return false; 
} 

Comment puis-je effectuer une détection de collision préemptive?

Répondre

0

En général, vous précalculer un pas en avant, quelque chose comme ceci:

classe à l'intérieur Rectangle:

public void move() 
{ 
    rec.x += rec.dx 
    rec.y += rec.dy 
} 

Ensuite,

public boolean CollisionCheck(Rectangle rect1, Rectangle rect2) { 
    rec1.move(); 
    rec2.move(); 
    if(rect1.intersects(rect2)) { 
     return true; 
    } 
    return false; 
} 

Ha. Travis est entré avant moi. Sympa de voir SO a mis à jour les notifications de réponse.

+0

Oui, cependant, je pense que votre méthode est meilleure; J'étais inconscient sur comment "prédire" le mouvement; C'est pourquoi j'ai posté. Merci –

+0

Pas de soucis. Vous pouvez aussi appeler 'move()' et 'CollissionCheck()' successivement, si vous avez besoin de flexibilité. +1 pour une question utile –