指定の点が三角形領域内にあるかどうかチェックします
point_in_triangle(px, py, x1, y1, x2, y2, x3, y3);
この関数を使用することで、3つの点による三角形の領域内に、指定の点があるかどうかをチェックすることができます。領域内であればtrue、そうでなければfalseを返します
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 point_in_triangle(inst.x, inst.y, x, y, x1, y1, x2, y2) { can_see = true; } }
上記コードは"円錐の視界"内に obj_Player が存在するかを判定しています。視界は自身の座標を基準に±45度・距離100で判定を行い、視界内に存在すれば変数"can_see"をtrueにします。