如何让cocos2d v1.0.1支持Retina?

时间:2013-07-24 09:53:17

标签: ios objective-c cocos2d-iphone retina-display

我必须使用其他开发人员制作的项目。该项目使用cocos2d v1.0.1。而问题是它不支持Retina显示。当我进入[director enableRetinaDisplay:YES];方法时,我看到它在行上返回NO:

if (! [openGLView_ respondsToSelector:@selector(setContentScaleFactor:)])
    return NO;

所以问题是 - 是否有可能以某种方式使这个版本的cocos2d支持Retina?

编辑:我在iOS 6.1模拟器中运行它。视网膜模拟器。

1 个答案:

答案 0 :(得分:1)

!是否定运算符。当且仅当!condition为假时,condition才会计算为真。

仅当return NO; 回复openGLView_时才会执行

setContentScaleFactor:行。

UIView的contentScaleFactor属性在iOS 4.0及更高版本中可用。检查此属性的setter的可用性是检查设备本身是否具有视网膜能力的方法。如果openGLView_ 回复setContentScaleFactor:,则此设备没有视网膜,这就是CCDirector的enableRetinaDisplay返回NO的原因。

如果您在设备上运行代码并在此处获得NO,则此设备没有视网膜。如果您在模拟器上运行它,请确保它至少模拟iOS 4.0。要获得视网膜设备模拟器,请在硬件 - >设备菜单中选择任何视网膜配置。

修改
openGLView_是否为零?在Objective C中,您可以在nil上调用任何方法,它将不执行任何操作并返回nil(零,NULL,NO)。你必须创建一个EAGLView并在启用视网膜显示之前将其设置为CCDirector的OpenGL视图