/
EugenyCh7
/
Puppet2D.Net
Обзор
Документация
Войти
/
EugenyCh7
/
Puppet2D.Net
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
Puppet2D.Engine/Common/ContactHitEvent.cs
63 строки
2 KB
EugenyCh7
Puppet2D.Engine.Common fix
24 авг 2025, 20:48
24 авг 2025, 20:48
6ed4095
Код
Авторство
О чём код?
using Puppet2D.Engine.Components.RigidBodies; using Puppet2D.Engine.Worlds; using Puppet2D.System; namespace Puppet2D.Engine.Common { /// <summary> /// A hit touch event is generated when two shapes collide with a speed faster than the hit speed threshold. /// </summary> public struct ContactHitEvent { private readonly B2.ShapeId shapeIdA; private readonly B2.ShapeId shapeIdB; /// <summary> /// The speed the shapes are approaching. Always positive. Typically in meters per second. /// </summary> public float ApproachSpeed { get; } /// <summary> /// Normal vector pointing from body A to body B. /// </summary> public Vector2 Normal { get; } /// <summary> /// Point where the shapes hit. /// </summary> public Vector2 Point { get; } /// <summary> /// Body A. /// </summary> public RigidBody BodyA { get; } /// <summary> /// Body B. /// </summary> public RigidBody BodyB { get; } internal ContactHitEvent(B2.ContactHitEvent contactHitEvent, World world) { shapeIdA = contactHitEvent.shapeIdA; shapeIdB = contactHitEvent.shapeIdB; ApproachSpeed = contactHitEvent.approachSpeed; Normal = contactHitEvent.normal; Point = contactHitEvent.point; BodyA = world.GetRigidBody(shapeIdA); BodyB = world.GetRigidBody(shapeIdB); } internal B2.ContactHitEvent Cast() { return new B2.ContactHitEvent { approachSpeed = ApproachSpeed, normal = Normal, point = Point, shapeIdA = shapeIdA, shapeIdB = shapeIdB }; } } }