J'ai un problème avec les objets de rotation et le théorème de l'axe de séparation. Je peux détecter une collision sur l'axe X et Y mais je ne peux pas ajouter d'autre axe. Essayez d'écrire ce code:Comment la détection de collision sur l'axe P avec SAT
//player vector
float lenght_box_p = odl(box_xy, box.getTransform().transformPoint(box.getPoint(0)));
//line vector
float lenght_line_p = odl(line_xy, line.getTransform().transformPoint(box.getPoint(0)));
// center vector
float lenght_center_p = odl(line_xy, box_xy);
// angle
float angle = cos((rotations * M_PI)/180);
//box projection
float projection_box_p = lenght_box_p * angle;
//line projection
float projection_line_p = lenght_line_p * angle;
//center projection
float projection_center_p = lenght_center_p * angle;
float gap_p1 = lenght_center_p - projection_box_p - projection_line_p;
if (gap_p1 <0)
{
return true;
}
J'utilise deux boîte 100 x 100, pour l'instant les deux boîtes sont orientées 59 * de l'axe horizontal.
C'est tout, grâce à l'aide et désolé mon anglais est pas bon ...