У меня есть мультиплатформенная игра для iOS / Android, которую я запрограммировал в Cocos2d-x. У меня есть только один набор изображений для использования (я только после устройств с высоким разрешением), которые масштабируются в соответствии с разрешением устройства. Например, все изображения предназначены для iPad, но если вы используете Galaxy S, то на расположение и масштабирование изображений влияет GalaxyS_screenWidth / iPadscreenWidth.
Это отлично работает для всех устройств Android, а также на iPad, iPad2 и старых iPhone, но с Retina iPhone возникает проблема. На iPhone 4 все мои изображения выглядят чрезвычайно пиксельными в результате того, что изображения были масштабированы до разрешения iPhone без сетчатки, а затем снова масштабированы, чтобы заполнить экран.
Я попытался включить режим Retina, и изображения стали вдвое меньше их предполагаемого размера (возможно, из-за использования get winsize (), который использует точки), а масштабирование вручную вызывает другие проблемы. Я пробовал поиграть с множеством опций и атрибутов, но безуспешно, что мне теперь делать?
РЕДАКТИРОВАТЬ: это не только проблема с графикой, поскольку текст автоматически уменьшается, затем увеличивается и выглядит пиксельным.
РЕДАКТИРОВАТЬ 2: Шрифты - это растровые изображения, поэтому я плохо. Но я не хочу использовать сетчатку, так как по умолчанию все изображения уже являются сетчаткой. Все мои изображения настроены для iPad, поэтому для iPhone 4 я просто немного уменьшил их. Это работает с телефонами Android.
Например, у меня есть изображение, зависящее от разрешения экрана, полученного через getwinsize()
:
Если текущая ширина разрешения 1024, изображение остается прежним. Если текущая ширина разрешения составляет 900, изображение масштабируется на 900/1024, без проблем. Если устройство имеет разрешение iPhone 4, ширина составляет 480, поэтому изображение масштабируется на 480/1024, тогда cocos2d-x автоматически масштабирует результирующее изображение на 2, таким образом, пикселизацию. Я пробовал использовать getwinsizeinpixels
, пробовал увеличивать размер экрана, пробовал много чего, но ничего не получалось из коробки, если только я не переделываю большую часть своего кода.
Итак, вопрос в том, как я могу позволить чертовому движку рассматривать iPhone 4 как телефон Android с разрешением 960x640?