public void OnSizeChanged(object sender, ScreenResizedEventArgs e) { }
public void OnSizeChanged(object sender, ScreenResizedEventArgs e) { EditorXNA.graphics.PreferredBackBufferWidth = e.Width; EditorXNA.graphics.PreferredBackBufferHeight = e.Height; EditorXNA.graphics.ApplyChanges(); // Throws exception if (!this.isloaded) return; if (this.context.SceneProvider.Cameras.ContainsKey("camera1")) { var camera = this.context.SceneProvider.Cameras["camera1"]; camera.ResizeScreen(camera.Screen.X, camera.Screen.Y, e.Width, e.Height); if (MapEditorManager.CurrentMap != null) { // Move the X origin int DisplayedWidth = (MapEditorManager.CurrentMap.MapSize.IntX * MapEditorManager.CurrentMap.TileSize) + (int)camera.Origin.IntX; if (DisplayedWidth < e.Width) { if (MapEditorManager.CurrentMap.MapSize.X * MapEditorManager.CurrentMap.TileSize < e.Width) camera.CenterOriginOnPoint(0, (int)(camera.Origin.Y)); else { int newOffset = (e.Width - DisplayedWidth); camera.CenterOriginOnPoint((int)(camera.Origin.X * -1) - newOffset, (int)(camera.Origin.Y * -1)); } } // Move the Y origin int DisplayedHeight = (MapEditorManager.CurrentMap.MapSize.IntY * MapEditorManager.CurrentMap.TileSize) + (int)camera.Origin.IntY; if (DisplayedHeight < e.Height) { if (MapEditorManager.CurrentMap.MapSize.Y * MapEditorManager.CurrentMap.TileSize < e.Height) camera.CenterOriginOnPoint((int)(camera.Origin.X), 0); else { int newOffset = (e.Height - DisplayedHeight); camera.CenterOriginOnPoint((int)(camera.Origin.X * -1), (int)(camera.Origin.Y * -1) - newOffset); } } } } }