Example #1
0
        public void MoveToKeyboardOverridesExistingKeyboardComponent()
        {
            // The only way to test this is to change the velocity and see if the new velocity number is used
            // Set velocity to 100, press D, wait one second; we should move 100px to the right.
            var expectedVelocity = 100;

            var entity = new CobaltEntity();

            entity.MoveToKeyboard(1);
            entity.MoveToKeyboard(expectedVelocity);

            KeyboardSystem.GenerateKeysCallback(() =>
            {
                // Press D to move X positively
                return(new Keys[] { Keys.D });
            });

            // Simulate keypress
            var keyboardSystem = new KeyboardSystem();

            keyboardSystem.Add(entity);
            keyboardSystem.Update(1);

            var velocitySystem = new VelocitySystem();

            velocitySystem.Add(entity);
            velocitySystem.Update(1);

            Assert.That(entity.Get <PositionComponent>().X, Is.EqualTo(expectedVelocity));
        }
        public void UpdateUpdatesPositionRelativeToElapsedTime()
        {
            var vX       = 17;
            var vY       = -19;
            var velocity = new VelocityComponent(vX, vY);

            var pX       = 400;
            var pY       = 128;
            var position = new PositionComponent(pX, pY);

            var elapsed = 0.7f;
            var e       = new CobaltEntity();

            e.Set(velocity);
            e.Set(position);

            var system = new VelocitySystem();

            system.Add(e);
            system.Update(elapsed);

            Assert.That(position.X, Is.EqualTo(pX + (elapsed * vX)));
            Assert.That(position.Y, Is.EqualTo(pY + (elapsed * vY)));
        }