airplayСтатьи

ЧаВо (FAQ)

Часто задаваемые вопросы
  Общие вопросы
    Есть ли готовый движок для игр на AirplaySDK?
    Насколько я понял, AirPlay SDK не поддерживает Windows Phone 7.
    Много ли проблем и сложностей возникнет, если делать приложение с одновременной поддержкой iOS и Android OS?
    Сложно ли интегрировать библиотеки других компаний в свое приложение?
    Возможно ли использовать нативные функции платформ в этом SDK?
  Программирование
    Как включить ортогональную проекцию для моей 2D игры?
    Как отключить автоматическое вращение экрана?
  Контент

Часто задаваемые вопросы


(или, скорее, часто возникающие проблемы).

По мере накопления интересной информации я буду структурировать. Но пока вопросы россыпью.

Общие вопросы

Есть ли готовый движок для игр на AirplaySDK?


Готовых общедоступных движков пока небыло найдено. В поставке SDK в папке "Airplay SDK\4.0\examples\GameFramework\" есть набор классов, который включает мир, сущность и унаследованные от сущности штуки вроде камеры и геометрии. Можно использовать этот framework или подсмотреть там правильно использовать возможности SDK и сделать что-то своё.

Насколько я понял, AirPlay SDK не поддерживает Windows Phone 7.


Нет и не будет до выхода официального Native SDK для WP7. Насколько мне известно из кругов, близких к MS - этого не произойдёт вообще. Native SDK будтет раздаваться только платформодержателям (Nokia, HTC..) для того чтобы они могли кастомизировать оболочку и т.п. Для обычных разработчиков этого не будет.

Много ли проблем и сложностей возникнет, если делать приложение с одновременной поддержкой iOS и Android OS?


При использовании Airplay SDK - нет. Есть баги некоторые - например не на всех Android устройствах работает multitouch, иногда есть проблемы с задержкой реакции на нажатие. Это из того, что я встречал. В целом же проблем особых нет.

Сложно ли интегрировать библиотеки других компаний в свое приложение?


Если библиотеки Open Source то легко - достаточно подключить исходник в проект. Обычно ещё требуется подправить несколько строк и т.п. Если библиотека бинарная то проблем больше - придётся химичить с EDK

Возможно ли использовать нативные функции платформ в этом SDK?


И да и нет. Есть подмножество нативных функций, вынесенных в SDK - это работа с записной книгой, акселометром и т.п. Остальное можно добавить через EDK, но EDK доступна только для ограниченного числа платформ.

Программирование

Как включить ортогональную проекцию для моей 2D игры?


1. В версии 4.0 поддерживается только перспективная проекция. В принципе можно попробывать разносить спрайты по разным уровням глубины через
void  CIwMaterial::SetZDepthOfs (int32 val);
void  CIwMaterial::SetZDepthOfsHW (int32 val);

Или для файлов ресурсов:

CIwMaterial
{
   zDepthOfs 100 
   zDepthOfsHW 100 
}

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

2. Можно отказаться от использования 3D сцен и использовать возможности подсистемы Iw2D.

Как отключить автоматическое вращение экрана?


Есть два решения, которые могут применяться в зависимости от ваших нужд:

1. Если вам нужно закрепить ориентацию (например только портретная или только панорамная) то в файле настроек приложения app.icf необходимо добавить:

  [S3E]
  FixScreenOrientation=1

2. Если вы используете в приложении акселометр сами, то бывает что нужно закрепить экран намертво. Для этого лучше использовать следующую комбинацию:
В файле конфигурации app.icf ставим:

  [S3E]
  FixScreenOrientation=1
  [GX]
  ScreenOrientAutoHandled=0

А в код инициализации приложения добавляем:

  int32 pixelType = s3eSurfaceGetInt(S3E_SURFACE_PIXEL_TYPE);
  s3eResult res = s3eSurfaceSetup((s3eSurfacePixelType)pixelType, 0, NULL, S3E_SURFACE_BLIT_DIR_NATIVE );

Этот вариант не полностью корректный, так как при переворачивании экрана на 180 градусов гравитация будет направлена "вверх", хотя должна быть направлена вниз. Полностью корректное решение пока не найдено. В Ideaworks обещали разобраться и поправить.

Контент

#AirplaySDK, #iPhone

26 ноября 2009 (Обновление: 28 мар 2011)

Комментарии [80]