0

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

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

所以问题是——有没有可能让这个版本的 cocos2d 支持 Retina?

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

4

1 回答 1

1

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

return NO;只有在没有openGLView_响应时才会执行行。setContentScaleFactor:

UIView 的contentScaleFactor属性在 iOS 4.0 及更高版本中可用。检查此属性的设置器的可用性是一种检查设备本身是否能够支持视网膜的方法。如果openGLView_没有响应,则该设备没有setContentScaleFactor:视网膜,这就是 CCDirectorenableRetinaDisplay返回 NO 的原因。

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

编辑
openGLView_零吗?在 Objective C 中,您可以在 nil 上调用任何方法,它什么也不做并返回 nil(零、NULL、NO)。在启用视网膜显示之前,您必须创建一个 EAGLView 并将其设置为 CCDirector 的 OpenGL 视图。

于 2013-07-24T11:06:49.230 回答