У меня есть 2D-игра, над которой я работаю, с соотношением сторон 4: 3.Когда я переключаю его в полноэкранный режим на моем широкоэкранном мониторе, он растягивается.Я попытался использовать два видовых экрана, чтобы создать черный фон, куда игра не должна растягиваться, но это оставило игру того же размера, что и раньше.Я не смог заставить его заполнить область просмотра, которая должна была вместить всю игру.
Как я могу заставить его работать в полноэкранном режиме без растяжения и без необходимости изменять каждую позицию и операторы рисования в игре?Код, который я использую для видовых экранов, приведен ниже.
// set the viewport to the whole screen
GraphicsDevice.Viewport = new Viewport
{
X = 0,
Y = 0,
Width = GraphicsDevice.PresentationParameters.BackBufferWidth,
Height = GraphicsDevice.PresentationParameters.BackBufferHeight,
MinDepth = 0,
MaxDepth = 1
};
// clear whole screen to black
GraphicsDevice.Clear(Color.Black);
// figure out the largest area that fits in this resolution at the desired aspect ratio
int width = GraphicsDevice.PresentationParameters.BackBufferWidth;
int height = (int)(width / targetAspectRatio + .5f);
if (height > GraphicsDevice.PresentationParameters.BackBufferHeight)
{
height = GraphicsDevice.PresentationParameters.BackBufferHeight;
width = (int)(height * targetAspectRatio + .5f);
}
//Console.WriteLine("Back: Width: {0}, Height: {0}", GraphicsDevice.PresentationParameters.BackBufferWidth, GraphicsDevice.PresentationParameters.BackBufferHeight);
//Console.WriteLine("Front: Width: {0}, Height: {1}", width, height);
// set up the new viewport centered in the backbuffer
GraphicsDevice.Viewport = new Viewport
{
X = GraphicsDevice.PresentationParameters.BackBufferWidth / 2 - width / 2,
Y = GraphicsDevice.PresentationParameters.BackBufferHeight / 2 - height / 2,
Width = width,
Height = height,
MinDepth = 0,
MaxDepth = 1
};
GraphicsDevice.Clear(Color.CornflowerBlue);
На рисунке ниже показано, как выглядит экран.Черный цвет по бокам - это то, что я хочу (и из первого видового экрана), а второй видовой экран - игра и область василькового цвета.Я хочу, чтобы игра масштабировалась, чтобы заполнить область василька.