public CameraSplitScreen(Game1 game, Camera3Person camera1, Camera3Person camera2) { Vector2 screenSize = new Vector2(game.GraphicsDevice.Viewport.Width / 2, game.GraphicsDevice.Viewport.Height); fieldOfView = MathHelper.ToRadians(45f); aspectRatio = (float)(game.GraphicsDevice.Viewport.Width / 2) / game.GraphicsDevice.Viewport.Height; nearPlane = 1f; farPlane = 1000f; //the projection matrix is the same for both cameras projectionMatrix = Matrix.CreatePerspectiveFieldOfView(fieldOfView, aspectRatio, nearPlane, farPlane); this.game = game; this.camera1 = camera1; this.camera2 = camera2; //SCREEN 1 SIZE - LEFT SCREEN Screen1.X = 0; Screen1.Y = 0; Screen1.Width = (int)screenSize.X; Screen1.Height = (int)screenSize.Y; Screen1.MinDepth = 0; Screen1.MaxDepth = 1; //SCREEN 2 SIZE - RIGHT SCREEN Screen2.X = (int)screenSize.X; Screen2.Y = 0; Screen2.Width = (int)screenSize.X; Screen2.Height = (int)screenSize.Y; Screen2.MinDepth = 0; Screen2.MaxDepth = 1; }
public CameraManager(Game1 game) { this.game = game; actCam = 3; splitScreen = true; listCam = new List <BaseCam>(); freeCamera = new FreeCamera(game); cameraSurfaceFollow = new CameraSurfaceFollow(game); cameraBirdsEye = new CameraBirdsEye(game); cameraTank1 = new Camera3Person(game, game.tank1); cameraTank2 = new Camera3Person(game, game.tank2); listCam.Add(freeCamera); listCam.Add(cameraSurfaceFollow); listCam.Add(cameraBirdsEye); listCam.Add(cameraTank1); listCam.Add(cameraTank2); cameraSplitScreen = new CameraSplitScreen(game, cameraTank1, cameraTank2); ActiveView = freeCamera.viewMatrix; ActiveProjection = freeCamera.projectionMatrix; }