/// <summary> /// The -0.5 pixel offset is needed in DirectX 9 to correctly match the texture coordinates: /// http://msdn.microsoft.com/en-us/library/windows/desktop/bb219690(v=vs.85).aspx /// </summary> public override void SetModelViewProjectionMatrixFor2D() { const float Offset = -0.5f; SetModelMatrix(Matrix.Identity); SetProjectionMatrix(Matrix.Identity); var pixelSpaceViewport = ScreenSpace.Current.ToPixelSpace(ScreenSpace.Current.Viewport); ShaderEffect.View = XnaMatrix.CreateOrthographicOffCenter( pixelSpaceViewport.Left + Offset, pixelSpaceViewport.Right + Offset, pixelSpaceViewport.Bottom + Offset, pixelSpaceViewport.Top + Offset, 0, 1); }
/// <summary> /// LoadContent will be called once per game and is the place to load /// all of your content. /// </summary> protected override void LoadContent() { _basicEffect = new BasicEffect(GraphicsDevice) { World = Matrix.Identity, View = Matrix.CreateLookAt(new Vector3(0, 0, 1), Vector3.Zero, Vector3.Up), // Specify how 3D points are projected/transformed onto the 2D screen Projection = Matrix.CreateOrthographicOffCenter(0, GraphicsDevice.Viewport.Width, GraphicsDevice.Viewport.Height, 0, 1.0f, 1000.0f), // Tell BasicEffect to make use of your vertex colors VertexColorEnabled = true }; Level = new Level(_score); }