rectangle_in_triangle

Syntaxe:

rectangle_in_triangle(sx1, sy1, sx2, sy2, dx1, dy1, dx2, dy2, dx3, dy3);


Argument La description
sx1 La coordonnée x du côté gauche du rectangle source.
sy1 La coordonnée y du côté supérieur du rectangle source.
sx2 La coordonnée x du côté droit du rectangle source.
sy2 La coordonnée y du côté inférieur du rectangle source.
x1 La coordonnée x du premier côté du triangle à vérifier.
y1 La coordonnée y du premier côté du triangle à vérifier.
x2 La coordonnée x du second côté du triangle à vérifier.
y2 La coordonnée y du second côté du triangle à vérifier.
x3 La coordonnée x du troisième côté du triangle à vérifier.
y3 La coordonnée y du troisième côté du triangle à vérifier.


Renvoie: Real.


La description

Cette fonction vérifie une zone rectangulaire que vous définissez pour voir si elle n'est pas en collision, complètement dans les limites de destination, ou si elle est simplement en contact, une zone triangulaire définie. Si elles ne touchent pas du tout, la fonction retournera 0, si la source est complètement dans la destination, elle retournera 1, et si elles se chevauchent simplement, elle retournera 2. L'image ci-dessous illustre ceci:


Exemple:

var inst = instance_nearest(x, y, obj_Player);
if instance_exists(inst)
   {
   var x1 = x + lengthdir_x(100, image_angle - 45);
   var y1 = y + lengthdir_y(100, image_angle - 45);
   var x2 = x + lengthdir_x(100, image_angle + 45);
   var y2 = y + lengthdir_y(100, image_angle + 45);
   if rectangle_in_triangle(inst.bbox_left, inst.bbox_top, inst.bbox_right, inst.bbox_bottom, x, y, x1, y1, x2, y2) == 1
      {
      can_see = true;
      }
   }

Le code ci-dessus utilise le rectangle_in_triangle fonctionne comme un "cône de vision" pour vérifier une instance de "obj_player". Si la boîte englobante complète se trouve dans la zone triangulaire donnée, elle définit une variable true.