Beiliegend die Code-Stuecke, die die normalen WASD Bewegungen implementieren. Weitere Bewegungen kann man durch hinzufuegen von weiteren Triggers zum CameraController cc ermoeglichen. Ueberschreiben von existierenden Triggers ist derzeit etwas kopliziert: Man bekommt mit cc.Triggers alle Triggers, kann ueber die drueberlaufen, und denjenigen identifizieren den man ersetzen will (am besten anhand der public HelpMessage). Dann kann man mit cc.RemoveTrigger(trigger) den identfizierten entfernen, und danach wie unten eine neuen Trigger dazufuegen. ============================================================================== #region Trigger: moves forward cc.AddTrigger( new Trigger( " moves forward", // HelpMessage state => !state.IsKeyPressed(Keys.Alt) && !state.IsKeyPressed(Keys.Control) && state.IsKeyPressed(Keys.W), state => { state.ControllableViewTrafo.Location.Val += state.ControllableViewTrafo.Forward.Val * m_translateSensitivity * WorldTime.dT * state.Sensitivity; }) ); #endregion #region Trigger: moves backwards cc.AddTrigger( new Trigger( " moves backwards", // HelpMessage state => !state.IsKeyPressed(Keys.Alt) && !state.IsKeyPressed(Keys.Control) && state.IsKeyPressed(Keys.S), state => { state.ControllableViewTrafo.Location.Val -= state.ControllableViewTrafo.Forward.Val * m_translateSensitivity * WorldTime.dT * state.Sensitivity; }) ); #endregion #region Trigger: moves right (strafe) cc.AddTrigger( new Trigger( " moves right (strafe)", // HelpMessage state => !state.IsKeyPressed(Keys.Alt) && !state.IsKeyPressed(Keys.Control) && state.IsKeyPressed(Keys.D), state => { state.ControllableViewTrafo.Location.Val += state.ControllableViewTrafo.Right.Val * m_translateSensitivity * WorldTime.dT * state.Sensitivity; }) ); #endregion #region Trigger: moves left (strafe) cc.AddTrigger( new Trigger( " moves left (strafe)", // HelpMessage state => !state.IsKeyPressed(Keys.Alt) && !state.IsKeyPressed(Keys.Control) && state.IsKeyPressed(Keys.A), state => { state.ControllableViewTrafo.Location.Val -= state.ControllableViewTrafo.Right.Val * m_translateSensitivity * WorldTime.dT * state.Sensitivity; }) ); #endregion ==============================================================================