ЧаВо (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
А в код инициализации приложения добавляем: