2014-02-03 4 views
1

Я использую monogame. В настоящее время у меня есть проблема, которая мешает мне продвигаться вперед. эта проблема касается разрешения и размера изображения.Разрешение и размер изображения в мобильных приложениях

Что я хочу знать, могу ли я использовать одни и те же изображения, или я должен использовать разные изображения (фоновое изображение, заполняющее весь экран) для каждого устройства в соответствии с разрешением и/или размером экрана.

Заранее спасибо.

+0

Время для чтения некоторых руководств IMO: http://developer.android.com/guide/practices/screens_support.html – MCollard

+0

Эти руководства не относятся к разработке игр. Хотя, они все равно стоит читать. – craftworkgames

ответ

0

Вы можете использовать только одно изображение и масштабировать его в соответствии с требуемым разрешением. Самый простой способ сделать фоновое изображение, чтобы использовать перегрузку SpriteBatch.Draw, которая принимает целевой прямоугольник, например, так:

var width = _graphicsDeviceManager.PreferredBackBufferWidth; 
var height = _graphicsDeviceManager.PreferredBackBufferHeight; 
var destinationRectangle = new Rectangle(0, 0, width, height); 

_spriteBatch.Begin(); 
_spriteBatch.Draw(_backgroundTexture, destinationRectangle, null, Color.White); 
// draw other sprites here 
_spriteBatch.End(); 

Имейте в виде, что ваши изображения будут выглядеть лучше, если вы сворачиваете их вниз, а не поэтому сделайте их достаточно большими, чтобы они выглядели хорошо на планшетах, а также на телефонах. Я имею тенденцию использовать 1600x960, потому что это вдвое больше обычного разрешения 800x480.

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

В качестве альтернативы вы можете использовать разные изображения для разных разрешений для получения более высокого качества результата. Хотя, я не видел, что этот подход много использовал в играх, но я думаю, что это довольно распространено в приложениях.

+0

Благодарим вас, но при масштабировании изображений вы рискуете потерять качество изображения, когда соотношение будет дефферентным. Поэтому я думаю, что я должен использовать одно изображение для каждого значения отношения (3: 5, 9:16, 2: 3 ....). – hmimo

+0

@hmimo Да, вы можете сделать это, если хотите. Вероятно, это будет достаточная работа, создающая все изображения и гарантирующая правильную загрузку каждый раз, плюс ваша игра займет больше дискового пространства, но она должна выглядеть хорошо. Если растяжение отношения является вашей главной заботой, я бы лично пошел с подгонкой изображения на экран динамически, отрезая края от исходного прямоугольника. – craftworkgames

0

Вы должны использовать различное изображение для каждого разрешения и поместить изображения одного разрешения в одну папку, чтобы заказать свой код.

+0

Les bons моменты – hmimo

+0

Это до сегодняшнего дня, что я видел это! – SadZey

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