public Waypoint(Entity entity, MetersPerSecond speed, Vector3 position, Vector3 lookAt) { this.Entity = entity; this.Speed = speed; this.Position = position; this.LookAt = lookAt; }
public Entity BuildCutScene() { var entity = this.EntityController.CreateEntity(); this.DebugInfoFactory.Construct(entity); var speeds = new MetersPerSecond[] { new MetersPerSecond(15.0f), new MetersPerSecond(15.0f), new MetersPerSecond(15.0f), new MetersPerSecond(6.0f), new MetersPerSecond(15.0f), new MetersPerSecond(15.0f), new MetersPerSecond(15.0f), new MetersPerSecond(15.0f), new MetersPerSecond(5.0f), new MetersPerSecond(5.0f) }; var positions = new Vector3[] { new Vector3(60, 10, 20), // start position new Vector3(-60, 10, 20), // near fireplace new Vector3(-50, 15, 0), // side stepping column new Vector3(-10, 40, 0), // center stage new Vector3(-30, 13, -10), // inspect windows new Vector3(-25, 34, -10), // side step to upper row new Vector3(-10, 34, -10), // in upper row new Vector3(20, 25, -7), // in upper row new Vector3(49, 10, -7), // pass lion new Vector3(49, 10, 20), // start position }; var lookAts = new Vector3[] { new Vector3(-60, 10, 20), new Vector3(-60, 0, 20), new Vector3(-60, 30, 20), new Vector3(-40, 0, 20), new Vector3(-50, 30, 10), new Vector3(-10, 40, 20), new Vector3(60, 40, 20), new Vector3(60, 10, 0), new Vector3(60, 10, 0), new Vector3(60, 10, 0) }; for (var i = 0; i < positions.Length; i++) { var speed = speeds[i]; var position = positions[i]; var lookAt = lookAts[i]; this.WaypointFactory.Construct(entity, speed, position, lookAt); } return(entity); }
public void Construct(Entity entity, MetersPerSecond speed, Vector3 position, Vector3 lookAt) { var waypoint = new Waypoint(entity, speed, position, lookAt); this.Container.Add(waypoint); }
public void Meterspersecond_2_feetpersecond() { FloatCompare(3.28084f, MetersPerSecond.FeetPerSecond(1)); }
public void Meterspersecond_2_kilometersperhour() { FloatCompare(3.6f, MetersPerSecond.KilometersPerHour(1), 5); }
public void Meterspersecond_2_milesperhour() { FloatCompare(2.2369363f, MetersPerSecond.MilesPerHour(1)); }
public void Update(PerspectiveCamera camera, Seconds elapsed) { var position = camera.Position; this.forward = Vector3.Normalize(camera.LookAt - camera.Position); var translate = TranslateSpeed * elapsed; if (this.Mouse.Hold(MouseButtons.Middle)) { var rotation = new Vector2(this.Mouse.Movement.X, this.Mouse.Movement.Y) * RotateFactor; var matrix = Matrix.CreateFromAxisAngle(this.up, rotation.X) * Matrix.CreateFromAxisAngle(this.left, -rotation.Y); this.forward = Vector3.Transform(this.forward, matrix); this.left = Vector3.Cross(this.up, this.forward); } if (this.Keyboard.Hold(Keys.A)) { position += this.left * translate; } else if (this.Keyboard.Hold(Keys.D)) { position -= this.left * translate; } if (this.Keyboard.Hold(Keys.W)) { position += this.forward * translate; } else if (this.Keyboard.Hold(Keys.S)) { position -= this.forward * translate; } if (this.Keyboard.Hold(Keys.C)) { position -= this.up * translate; } else if (this.Keyboard.Hold(Keys.Space)) { position += this.up * translate; } if (this.Keyboard.Click(Keys.R)) { position = Vector3.Backward * 10; this.forward = Vector3.Forward; this.left = Vector3.Left; this.up = Vector3.Up; } if (this.Mouse.ScrolledUp) { this.TranslateSpeed = Math.Min(this.TranslateSpeed + 1, MaxTranslateSpeed); } else if (this.Mouse.ScrolledDown) { this.TranslateSpeed = Math.Max(this.TranslateSpeed - 1, MinTranslateSpeed); } camera.Move(position, position + this.forward); }