2014-11-07 3 views
0

По какой-то причине все, что я пробовал, что было онлайн о разрешении независимости, действительно не работает так, как хотелось бы. Большинство решений предлагают способ получить ширину и высоту, а затем использовать класс с ними, но результатом всегда является изображение отсечки (слишком большое изображение) или изображение в верхнем левом углу с меньшей высотой и шириной, чем у экран.Независимость от разрешения XNA

P.S. Игра находится в полноэкранном режиме, но мы попытались окончить, и это тоже не сработало.

ответ

1

Это на самом деле довольно простое решение. В принципе, создайте объект RenderTarget где-нибудь и сделайте весь свой чертеж этому объекту, а затем измените его размер на экран.

Используйте GraphicsDevice.SetRenderTarget(target), чтобы изменить цель рендеринга, затем выполните все операции рисования, а затем верните его обратно в задний буфер, установив его на null. RenderTargets фактически происходят от Texture2D, поэтому вы можете использовать его в качестве аргумента, например: SpriteBatch.Draw(renderTarget, Viewport.Bounds, Color.White), и это растянет его, чтобы он соответствовал экрану.

+0

У нас уже есть довольно большой проект, значит ли это, что мы должны изменить все розыгрыши. Извините, но я не совсем понимаю, что «так вы можете использовать его в качестве аргумента, например: SpriteBatch.Draw (renderTarget, Viewport.Bounds, Color.White)». Я не уверен, как рисовать все с целью рендеринга. – frostblooded

+0

В начале вашего метода 'Game.Draw()' добавьте 'GraphicsDevice.SetRenderTarget (target)' перед 'GraphicsDevice.Clear()'. Затем выполните все ваши обычные призывы рисования, а затем вызовите 'GraphicsDevice.SetRenderTarget (null)'. «target» - объект типа «RenderTarget2D». На данный момент у вас не должно быть ничего рисунка, кроме фиолетового фона - это означает, что на экран или backbuffer ничего не было нарисовано, а скорее цель, которую вы предоставили! Теперь вы вызываете 'SpriteBatch.Draw()', и когда любая из перегрузок запрашивает объект Texture2D, вы можете предоставить ему «цель». –

+0

Но не нужно ли Texture2D знать, какую текстуру нарисовать? – frostblooded

Смежные вопросы