Сделать Flixel (порт iOS) поддерживает графику сетчатки

Если вы знакомы с игровым движком Flixel, откройте его здесь: https://github.com/ericjohnson/canabalt-ios/tree/master/flixel-ios

Как бы вы добавили поддержку графики Retina? Как текстуры сетчатки размера.

Я попытался добавить @2x атласа pngs, и они, кажется, загружаются, однако я предполагаю, что смещения будут неправильными, как указано в листе атласа. Изменение plist (загрузка атласов сетчатки для устройств Retina) с правильными смещениями, несомненно, корректно загружает графику, но сами текстуры обычно выглядят слишком большими, и, похоже, возникают другие проблемы.

Обновление прогресса:

  • Как отмечалось выше, я создаю отдельные текстурные атласы для графики с высоким разрешением - думаю, это будет означать, что мне понадобится полный набор графики с высоким разрешением (или его вообще нет), чтобы упростить задачу. Это заставляет графику загружаться правильно (или смещения, конечно, некорректны, если используется lowres atlas plist)

  • При создании FlxSprite:s я не использую сокращенные статические создатели, но конструкторы init*, указывающие параметр modelScale с использованием масштаба устройства (будет 2,0 для устройств с сетчаткой, 1,0 для других). При этом графика также отображается с правильным размером на экране, независимо от того, экран сетчатки или нет.

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

Обновление прогресса снова:

  • Скорее всего, я ошибся выше. Я думаю, я узнал, как это сделать. Не нужно устанавливать modelScale на 2.0... Я мог бы разобраться в деталях и дать ответ позже:-)

1 ответ

Я полагаю, что нет прямого способа сделать это, но когда вы создаете экземпляр своего класса, полученного из FlxGame, не используйте YES в параметре zoom. Для начинающих. Тогда вам придется загружать разные атласы для сетчатки и не сетчатки. Однако не уверен, что происходит с поддержкой iPad. Затем при загрузке текстур для FlxSprites вам нужно указать "масштаб устройства", который будет равен 2,0 для устройств с сетчаткой - получите его из [UIScreen scale]. Это позволит сетчатке и не сетчатке работать хорошо для FlxSprite. Тогда FlxTileblock (и, возможно, другие классы) - это еще одна история, которую я еще не решил.

Другие вопросы по тегам