protected void OnResize(bool forceResize) { if (WindowState == FormWindowState.Minimized) { return; // don't want to change the camera when we minimize the screen } if (SpriteManager.IsInitialized) { FlatRedBallServices.ForceClientSizeUpdates(); } }
protected void OnResize(bool forceResize) { if (WindowState == FormWindowState.Minimized) { return; // don't want to change the camera when we minimize the screen } if (SpriteManager.IsInitialized) { FlatRedBallServices.ForceClientSizeUpdates(); // SpriteManager.FindDevice(); bool updateFieldOfView = forceResize || SpriteManager.Cameras[0].DestinationRectangle.Height != DisplayRectangle.Height; if (SpriteManager.Camera.Orthogonal == false) { float ratioChange = DisplayRectangle.Height / (float)SpriteManager.Cameras[0].DestinationRectangle.Height; SpriteManager.Cameras[0].DestinationRectangle = this.DisplayRectangle; if (updateFieldOfView) { double yAt600 = Math.Sin(Math.PI / 8.0); double xAt600 = Math.Cos(Math.PI / 8.0); double desiredYAt600 = yAt600 * (double)DisplayRectangle.Height / 600.0; float desiredAngle = (float)Math.Atan2(desiredYAt600, xAt600); SpriteManager.Cameras[0].FieldOfView = 2 * desiredAngle; } } else { double unitPerPixel = SpriteManager.Camera.OrthogonalHeight / SpriteManager.Cameras[0].DestinationRectangle.Height; SpriteManager.Camera.OrthogonalHeight = (float)(DisplayRectangle.Height * unitPerPixel); SpriteManager.Camera.OrthogonalWidth = (float)(DisplayRectangle.Width * unitPerPixel); SpriteManager.Cameras[0].DestinationRectangle = this.DisplayRectangle; SpriteManager.Cameras[0].FixAspectRatioYConstant(); if (updateFieldOfView) { double yAt600 = Math.Sin(Math.PI / 8.0); double xAt600 = Math.Cos(Math.PI / 8.0); double desiredYAt600 = yAt600 * (double)DisplayRectangle.Height / 600.0; float desiredAngle = (float)Math.Atan2(desiredYAt600, xAt600); SpriteManager.Cameras[0].FieldOfView = 2 * desiredAngle; } } // Shifts are no longer needed - top left is 0,0 //GuiManager.ShiftBy( // -(float)(TopLeftPixel.X + SpriteManager.Cameras[0].XEdge), // -(float)(SpriteManager.Cameras[0].YEdge - TopLeftPixel.Y), // false // Don't shift SpriteFrame GUI // ); TopLeftPixel.X = -SpriteManager.Cameras[0].XEdge; TopLeftPixel.Y = SpriteManager.Cameras[0].YEdge; //GuiManager.RefreshTextSize(); } }