2013-07-24 64 views
0

我必须使用另一个开发人员制作的项目。该项目使用cocos2d v1.0.1。问题是它不支持Retina显示。当我进入[director enableRetinaDisplay:YES];方法我看到它返回NO就行了:如何让cocos2d v1.0.1支持视网膜?

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

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

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

+0

嗯......它已经有一段时间了,但我很确定它确实。当你得到否,你在跑什么?模拟器硬件是否正确设置? – YvesLeBorg

+0

模拟器ios 6.1。它是视网膜 –

+0

也是真正的iPhone设备iOS 6.视网膜。仍然一样 –

回答

1

!是否定运算符。 !condition当且仅当condition为假时才计算为真。如果openGLView_来响应setContentScaleFactor:

return NO;线才会执行。

UIView的contentScaleFactor属性在iOS 4.0及更高版本中可用。检查此属性的设置者的可用性是检查设备本身是否具有视网膜能力的一种方法。如果openGLView_确实不是setContentScaleFactor:作出响应,那么这个设备没有视网膜,这就是为什么CCDirector的enableRetinaDisplay返回NO。

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

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

+0

我在模拟器iOS 6.1 Retina –

+0

runnning它,只是在Retina iPhone ios 6上试过它。仍然没有回应这个选择器 –

+0

请参阅编辑。 – Kreiri