Exemplo n.º 1
0
 public void Setup()
 {
     ColliderBase.ClearAllColliders();
     actor123 = new DummyActor(new Vector2(0, 2), new Vector2(6, 2));
     actor14  = new DummyActor(new Vector2(-2, 1), new Vector2(2, 4));
     actor258 = new DummyActor(new Vector2(0, 0), new Vector2(2, 6));
     actor6   = new DummyActor(new Vector2(2, 0), new Vector2(2, 2));
     actor89  = new DummyActor(new Vector2(1, -2), new Vector2(4, 2));
 }
Exemplo n.º 2
0
        public void TestApplyPhysics_ActorNotAffectedByGravity()
        {
            DummyActor actor = new DummyActor()
            {
                IsAffectedByGravity = false
            };
            var initialPosition = actor.Position;

            PhysicsController.ApplyPhysics(actor);

            Assert.AreEqual(initialPosition, actor.Position);
        }
Exemplo n.º 3
0
        public void TestApplyPhysics_StaticActor()
        {
            DummyActor actor = new DummyActor()
            {
                IsStatic = true
            };
            var initialPosition = actor.Position;

            actor.MovementSpeed = new TudoMario.Vector2(1f, -5f);
            PhysicsController.ApplyPhysics(actor);

            Assert.AreEqual(initialPosition, actor.Position);
        }
Exemplo n.º 4
0
        public void TestCalculateSpeedLimit()
        {
            DummyActor actor = new DummyActor();

            actor.IsCollisionEnabled = false;
            actor.MovementModifiers.Add(MovementModifier.IceWalk);
            actor.MovementModifiers.Add(MovementModifier.JumpBoost);
            MethodInfo applyMultiplicative = physicsReflection.GetMethod("CalculateSpeedLimit", BindingFlags.NonPublic | BindingFlags.Static);
            Vector4    result = (Vector4)applyMultiplicative.Invoke(null, new object[] { actor });

            Assert.AreEqual(MovementModifier.JumpBoost.Function(actor.SpeedLimits.Y, MovementModifier.JumpBoost.Value), result.X); // modified by: JumpBoost
            Assert.AreEqual(actor.SpeedLimits.Y, result.Y);                                                                        // modified by: none
            Assert.AreEqual(MovementModifier.IceWalk.Function(actor.SpeedLimits.X, MovementModifier.IceWalk.Value), result.W);     // modified by: IceWalk
        }
Exemplo n.º 5
0
        public void TestApplyMultiplicativeModifiers()
        {
            DummyActor actor = new DummyActor();

            actor.MovementModifiers.Add(MovementModifier.IceWalk);
            Vector4    speedLimits         = new Vector4(actor.SpeedLimits.Y, actor.SpeedLimits.Y, actor.SpeedLimits.X, actor.SpeedLimits.X);
            MethodInfo applyMultiplicative = physicsReflection.GetMethod("ApplyMultiplicativeModifiers", BindingFlags.NonPublic | BindingFlags.Static);
            Vector4    result = (Vector4)applyMultiplicative.Invoke(null, new object[] { actor, speedLimits });

            Assert.AreEqual(speedLimits.X, result.X);
            Assert.AreEqual(speedLimits.Y, result.Y);
            Assert.AreEqual(MovementModifier.IceWalk.Function(speedLimits.Z, MovementModifier.IceWalk.Value), result.Z);
            Assert.AreEqual(MovementModifier.IceWalk.Function(speedLimits.W, MovementModifier.IceWalk.Value), result.W);
        }
Exemplo n.º 6
0
        public void TestApplyPhysics_Gravity()
        {
            DummyActor actor = new DummyActor()
            {
                IsCollisionEnabled = false
            };

            actor.MovementSpeed.Y = 1f;
            var initialSpeed = actor.MovementSpeed.Y;

            PhysicsController.ApplyPhysics(actor);
            Assert.IsTrue(actor.MovementSpeed.Y < initialSpeed);

            actor.MovementSpeed.Y = -1f;
            initialSpeed          = actor.MovementSpeed.Y;
            PhysicsController.ApplyPhysics(actor);
            Assert.IsTrue(actor.MovementSpeed.Y < initialSpeed);
        }
Exemplo n.º 7
0
        public void TestApplyPhysics_Friction()
        {
            DummyActor actor = new DummyActor()
            {
                IsAffectedByGravity = false
            };

            actor.MovementSpeed.X = 1f;
            var initialSpeed = actor.MovementSpeed.X;

            PhysicsController.ApplyPhysics(actor);
            Assert.IsTrue(Math.Abs(actor.MovementSpeed.X) < Math.Abs(initialSpeed));

            actor.MovementSpeed.X = -1f;
            initialSpeed          = actor.MovementSpeed.X;
            PhysicsController.ApplyPhysics(actor);
            Assert.IsTrue(Math.Abs(actor.MovementSpeed.X) < Math.Abs(initialSpeed));
        }