private void BuilderForm_Shown( object sender, EventArgs e ) { if ( DesignMode ) { return; } Viewer viewer = new Viewer( ); try { SolarSystem system = new SolarSystem( ); system.Planets.Add( BuilderState.Instance.Planet ); viewer.Renderable = new RenderableList( new FpsDisplay( ), system ); } catch ( Exception ex ) { // TODO: AP: Remove exception handler // This is a bodge of an exception handler. Accessing BuilderState.Instance creates // the planet, which can throw. So this try-catch assumes that this is the first access... AppLog.Exception( ex, "Error accessing planet instance" ); ShowExceptionForm.Display( this, ex, "Error accessing planet instance ({0})", ex.Message ); Close( ); return; } viewer.PreRender += delegate { DebugText.Write( "Camera(m): {0}", ( ( IUniCamera )viewer.Camera ).Position.ToMetresString( ) ); DebugText.Write( "Camera Z: {0}", ( ( IUniCamera )viewer.Camera ).Frame.ZAxis ); DebugText.Write( "Camera 'Z: {0}", ( ( IUniCamera )viewer.Camera ).InverseFrame.ZAxis ); }; // Control focusControl = ActiveControl; // testDisplay.MouseEnter += delegate { testDisplay.Focus( ); }; // testDisplay.MouseLeave += delegate { testDisplay.Focus( ); }; testDisplay.AddViewer( viewer ); ICommandUser user = CommandUser.Default; viewer.Camera = CreateCamera( user ); }
private void GameClientForm_FormClosing( object sender, FormClosingEventArgs e ) { m_DockingManager.SaveConfigToFile( m_ClientSetupFile, Encoding.ASCII ); if ( m_SolarSystem != null ) { m_SolarSystem.Dispose( ); m_SolarSystem = null; } Graphics.Renderer.Dispose( ); }
private void GameClientForm_Shown( object sender, EventArgs e ) { if ( DesignMode ) { return; } gameDisplay.OnBeginPaint += delegate { GameProfiles.Game.Rendering.Begin( ); }; gameDisplay.OnEndPaint += delegate { GameProfiles.Game.Rendering.End( ); GameProfiles.Game.Rendering.Reset( ); }; UniPoint3 initialViewPos = new UniPoint3( ); try { m_SolarSystem = CreateSolarSystem( initialViewPos ); } catch ( Exception ex ) { AppLog.Exception( ex, "Error occurred creating the solar system" ); ErrorMessageBox.Show( this, Resources.ErrorCreatingSolarSystem, ex ); Close( ); return; } // Load the game viewer try { LoadParameters loadParams = new LoadParameters( ); loadParams.Properties[ "user" ] = m_User; Viewer viewer = ( Viewer )AssetManager.Instance.Load( "Viewers/TestGameViewer.components.xml", loadParams ); viewer.Renderable = m_SolarSystem; ( ( IUniCamera )viewer.Camera ).Position.Z = initialViewPos.Z; gameDisplay.AddViewer( viewer ); } catch ( Exception ex ) { AppLog.Exception( ex, "Error occurred creating game viewer" ); ErrorMessageBox.Show( this, Resources.ErrorCreatingGameViewer, ex ); Close( ); return; } // Load the game controls try { CommandInputTemplateMap[] gameControlMaps = new CommandInputTemplateMap[] { ( CommandInputTemplateMap )AssetManager.Instance.Load( "Input/TestTrackingCameraInputs.components.xml" ), ( CommandInputTemplateMap )AssetManager.Instance.Load( "Input/HeadCameraInputs.components.xml" ) }; foreach ( Viewer viewer in gameDisplay.Viewers ) { foreach ( CommandInputTemplateMap gameControlMap in gameControlMaps ) { gameControlMap.BindToInput( new InputContext( viewer ), m_User ); } } } catch ( Exception ex ) { AppLog.Exception( ex, "Error occurred creating game controls" ); ErrorMessageBox.Show( this, Resources.ErrorCreatingGameControls, ex ); } }
private static SolarSystem CreateSolarSystem( UniPoint3 initialViewPos ) { SolarSystem system = new SolarSystem( ); SpherePlanet planet = new SpherePlanet( null, "TEST0", 80000.0 ); initialViewPos.Z = planet.Radius + UniUnits.Metres.ToUniUnits( 10000 ); //SpherePlanet moon = new SpherePlanet( new CircularOrbit( planet, 1600000.0, TimeSpan.FromSeconds( 60 ) ), "TEST1", 30000.0f ); //SpherePlanet moon1 = new SpherePlanet( new CircularOrbit( moon, 500000.0, TimeSpan.FromSeconds( 60 ) ), "TEST2", 100000.0f ); //moon.Moons.Add( moon1 ); //planet.Moons.Add( moon ); system.Planets.Add( planet ); //system.Planets.Add( moon ); //system.Planets.Add( moon1 ); return system; }