本文整理汇总了C#中IActor.GetRectCollision方法的典型用法代码示例。如果您正苦于以下问题:C# IActor.GetRectCollision方法的具体用法?C# IActor.GetRectCollision怎么用?C# IActor.GetRectCollision使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IActor
的用法示例。
在下文中一共展示了IActor.GetRectCollision方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ActorTrigger
/// <summary> Проверить пересичение Actor2D с Trigger. </summary>
/// <param name="a"> Актер. </param>
/// <param name="t"> Триггер. </param>
public static bool ActorTrigger(IActor a, Trigger t)
{
switch (t.type)
{
case GeometryType.Point:
var r = a.GetRectCollision();
var p = t.points[0];
return p.X >= r.X && p.Y >= r.X && p.X <= r.X + r.Width && p.Y <= r.X + r.Height;
case GeometryType.Line:
return RectLine(a.GetRectCollision(), t.points[0], t.points[1]);
case GeometryType.Rect:
return
a.GetRectCollision().Intersects(new RectangleF(t.points[0].X, t.points[0].Y, t.points[1].X,
t.points[1].Y));
//case GeometryType.Polygon:
// TODO: GeometryType.Polygon
default:
throw new NotImplementedException("[DE] Collision: Тип геометрии " + t.type + " не реализован.");
}
}
示例2: ActorActor
/// <summary> Проверка столкновение с актерами с учётом групп. </summary>
/// <param name="a1"> Первый актер. </param>
/// <param name="a2"> Второй актер. </param>
/// <param name="checkGroup"> Учитывать группы столкновений. null - не проверять. </param>
public static bool ActorActor(IActor a1, IActor a2, string checkGroup = null)
{
if (a1 == null || a1.Width <= 0 || a1.Height <= 0 || a2 == null || a2.Width <= 0 || a2.Height <= 0)
{
return false;
}
if (checkGroup != null && !Groups.GroupWith(a1.Group, a2.Group))
{
return false;
}
return a1.GetRectCollision().Intersects(a2.GetRectCollision());
}