public void OnSizeChanged(object sender, ScreenResizedEventArgs e)
 {
 }
Example #2
0
        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);
                        }
                    }
                }
            }
        }