コード例 #1
0
        public void XWTMN()
        {
            // Arrange
            if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
            {
                DeusaldPhysics2D.DeusaldPhysics2D.InitPhysics(InitSystemType.WindowsNative);
            }
            else
            {
                DeusaldPhysics2D.DeusaldPhysics2D.InitPhysics(InitSystemType.MacNative);
            }

            IPhysics2DControl physics2D = DeusaldPhysics2D.DeusaldPhysics2D.CreateNewPhysics(20, Vector2.Down);

            int     collisionObjectAId = -1;
            int     collisionObjectBId = -1;
            Vector2 collisionNormal    = Vector2.Zero;

            physics2D.OnCollisionEnter += data =>
            {
                collisionObjectAId = data.PhysicsObjectA.PhysicsObjectId;
                collisionObjectBId = data.PhysicsObjectB.PhysicsObjectId;
                collisionNormal    = data.Normal;
            };

            IPhysicsObject objOne = physics2D.CreatePhysicsObject(BodyType.Dynamic, Vector2.Zero, 0f);

            objOne.AddBoxCollider(1, 1);

            IPhysicsObject objTwo = physics2D.CreatePhysicsObject(BodyType.Static, new Vector2(0, -25f), 0f);

            objTwo.AddBoxCollider(1, 1);

            // Act
            for (int i = 0; i < 1000; ++i)
            {
                physics2D.Step();
            }

            // Assert
            Assert.Multiple(() =>
            {
                Assert.AreEqual(1, collisionObjectAId);
                Assert.AreEqual(2, collisionObjectBId);
                Assert.AreEqual(new Vector2(0, -1), collisionNormal);
            });
        }
コード例 #2
0
 internal RaycastCallbackNative(IPhysics2DControl physics2DControl, Delegates.RayCastCallback callback, ushort collisionMask)
 {
     _Physics2DControl = physics2DControl;
     _Callback         = callback;
     _CollisionMask    = collisionMask;
 }
コード例 #3
0
 internal OverlapCallbackNative(IPhysics2DControl physics2DControl, Delegates.OverlapAreaCallback callback, ushort collisionMask)
 {
     _Physics2DControl = physics2DControl;
     _CollisionMask    = collisionMask;
     _Callback         = callback;
 }