Я уже давно в этом разбираюсь и никак не могу разобраться. На некоторых Android устройствах моя игра имеет вертикальную полосу «мертвого» пространства справа при запуске игры, и если я отправляю игру на задний план и повторно активирую ее, то я получаю дополнительную справа. Я добавил два GIFS к сообщению, чтобы помочь показать это.
Когда я проверяю GraphicsDevice.Viewport.X, он не равен нулю, я могу установить его обратно в ноль, но если я поставлю игру на задний план и верну ее обратно, значение X снова изменится. Я могу использовать приведенный ниже код, чтобы исправить его, но изо всех сил стараюсь найти, где я должен его разместить, чтобы избежать необходимости вызывать его при каждом обновлении. Точно так же ширина области просмотра изменяется в то же время.
if (GraphicsDevice != null && (GraphicsDevice.Viewport.X != 0 ||
GraphicsDevice.Viewport.Width != GraphicsDevice.Adapter.CurrentDisplayMode.Width ||
GraphicsDevice.Viewport.Width != GraphicsAdapter.DefaultAdapter.CurrentDisplayMode.Width))
{
Viewport view = GraphicsDevice.Viewport;
view.X = 0;
view.Width = GraphicsAdapter.DefaultAdapter.CurrentDisplayMode.Width;
GraphicsDevice.Viewport = view;
}
Я поместил этот код в метод Update () экрана, и это решает проблему - но, кажется, излишне вызывать его при каждом обновлении , Я также попытался вызвать его в переопределении Activity и Game OnResume () и OnActivate (), он изменяет область просмотра по мере необходимости, но не удерживается и в итоге возвращается к значениям, которые вызывают бары «мгновенно» .
Также стоит отметить, что игра работает в полноэкранном режиме.
Буду признателен за любые советы, которые вы можете предложить.
Игра запущена Игра возобновлена с фона
Примечание: в видео я двигаю синий маркер касанием.