игра для iPhone Cocos2d переходит на игру для iPad - PullRequest
0 голосов
/ 23 января 2011

Я провел тысячи часов в одной из своих игр и только начал смотреть на iPad. Да ... не понял, какой размер всего CGSize = [[CCDirector sharedDirector] winSize]; вещь была до сих пор.

Значит, я в значительной степени облажался, верно? Нет смысла менять буквально 10 000 координат ccp?

Есть ли способ:

если iPad добавьте или вычтите к ccp, чтобы поместить все в центр

Я мог бы добавить это к каждой сцене.

Ответы [ 2 ]

0 голосов
/ 24 января 2011

Да, не беспокойтесь. Я считаю, что вам просто нужно изменить свои активы и просто определить:

float deviceScale

И вы можете легко проверить в своем приложении Delegate, на каком устройстве работает программа:

NSString *deviceType = [UIDevice currentDevice].model;
NSLog(@"deive name is %@",deviceType);

if([deviceType isEqualToString:@"iPad"] || [deviceType isEqualToString:@"iPad Simulator"] ){
        [[CCDirector sharedDirector] setContentScaleFactor:1];
} else {
    if([[UIScreen mainScreen] respondsToSelector:NSSelectorFromString(@"scale")])
    {
        if ([[UIScreen mainScreen] scale] < 1.1){
            [[CCDirector sharedDirector] setContentScaleFactor:1];
        }   
        if ([[UIScreen mainScreen] scale] > 1.9){
                        //retina display
            [[CCDirector sharedDirector] setContentScaleFactor:2];
        }
    }
    else {
        [[CCDirector sharedDirector] setContentScaleFactor:1];
    }   
}

Как я уже говорил ранее, вам может понадобиться переменная 'deviceScale', для retina / ipad сделайте ее deviceScale = 1 для всех остальных deviceScale = 0.5. Затем уменьшите изображения, если устройство не на сетчатке или iPad.

0 голосов
/ 23 января 2011

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

...