模拟器与iPad视网膜显示

时间:2013-01-02 14:07:24

标签: objective-c ios cocos2d-iphone ios-simulator

我的模拟器有问题,我尝试用空间管理器和我的delegate.m制作应用程序我有这个来源.. 我尝试为每个设备特别设置代码并在那里写//在这里是问题,我尝试用视网膜显示器设置ipad的代码,当我启动我的模拟器时,一切都完美,但带有视网膜显示器的ipad不会加载,它只在我设置时加载[导演enableRetinaDisplay:NO];然后它没有视网膜。 那么有谁知道,如何设置它以允许视网膜显示以另一种方式工作?感谢。

    if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone )
{
    CGSize result = [[UIScreen mainScreen] bounds].size;


    if(result.height == 480 && [director enableRetinaDisplay:YES] == YES)
    {
        NSLog(@"iphone 4");
         [[CCDirector sharedDirector] replaceScene:[GameLayer node]];
    }


    if(result.height == 480 && [director enableRetinaDisplay:YES] == NO)
    {
        NSLog(@"iphone 3");
        [[CCDirector sharedDirector] replaceScene:[GameLayer node]];
    }



    if(result.height == 568)
    {
        NSLog(@"iphone 5");
        [[CCDirector sharedDirector] replaceScene:[Menu node]];
    }

}


if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
{
    CGSize result = [[UIScreen mainScreen] bounds].size;


    if(result.height == 1024 && [director enableRetinaDisplay:YES] == NO)
    {
        NSLog(@"iPad");
        [[CCDirector sharedDirector] replaceScene:[GameLayer node]];
    }

    if([director enableRetinaDisplay:YES] == YES)
    {
        NSLog(@"iPad retina");

        //HERE IS THE PROBLEM
        //HERE IS THE PROBLEM
        //[director enableRetinaDisplay:NO];

        [[CCDirector sharedDirector] replaceScene:[GameLayer node]];
    }
}

1 个答案:

答案 0 :(得分:1)

这是早期Cocos2D版本中的一个已知错误,但可以通过对CCDirectorIOS类进行少量更改来轻松解决。您需要使用以下行替换212/213行:

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad &&
[[UIScreen mainScreen] scale] > 1.0 )
{gluPerspective(60, (GLfloat)size.width/size.height, zeye-size.height/2, zeye+size.height/2 );
} else {
gluPerspective(60, (GLfloat)size.width/size.height, 0.5f, 1500);
}

注意:这不是我的修复,我在遇到同样的问题后偶然发现了谷歌搜索。完整的解释可以在这里找到:http://swainya.blogspot.no/2012/03/black-screen-on-simulator-for-ipad.html归功于Spencer Ho ......