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))); }