Cocos2d с iPad на iPhone

В настоящее время у меня есть приложение для iPad, полностью построенное на Cocos2D и Chipmunk. Я хочу перенести свое приложение на iPhone прямо сейчас.

Все, что я могу найти, это советы о том, как перестроить ваше приложение для iPad. Есть ли простое решение, например, уменьшить масштаб вашей сцены cocos2D?

Есть ли у кого-нибудь советы по этому поводу?


person Kjelle Vergauwe    schedule 01.10.2010    source источник


Ответы (2)


Ну, у CCNode есть свойство Scale, так что вы сможете сделать что-то вроде:

if(![MyApp isIPad]){
    [myScene Scale:iPadToiPhoneScale];
}

но вы не должны делать такие вещи (даже не уверены, что это сработает).

Вы должны в своем AppDelegate проверить, работаете ли вы на iPad или iPhone, и загрузить правильные ресурсы (например, ранее уменьшенные спрайты).

Затем, при создании ваших сцен, вместо абсолютного позиционирования ваших CNodes:

[back setPosition:ccp(160, 240)];

поместите их в относительное положение:

[back setPosition:ccp(0.5*[MyApp deviceWidth], 0.5*[MyApp deviceHeight])];

где у MyApp будет куча статических помощников, которые будут возвращать возможности устройства.

Еще лучше, почему бы не что-то вроде:

CGPoint convertedPosition = [MyApp convertForDevice:ccp(160, 240)];
[back setPosition:convertedPosition];

Надеюсь это поможет.

person João Caxaria    schedule 19.11.2010

Блин... На самом деле это не "ответ" - но я скажу, что однажды мне пришлось сделать этот тип преобразования - и одна вещь, которая помогла мне, заключалась в том, что я обнаружил, что вы можете "изменить" файл XIB из "iPhone" на «iPad» один туда и обратно, отредактировав XML. Я думаю, что нужно изменить:

archive type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB"

to

<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB"

(но точно не помню).

person Brad    schedule 23.10.2010