【问题标题】:How to make cocos2d v1.0.1 support Retina?如何让cocos2d v1.0.1 支持Retina?
【发布时间】:2013-07-24 09:53:16
【问题描述】:

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

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

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

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

【问题讨论】:

  • hmmm.... 已经有一段时间了,但我很确定确实如此。当你得到那个NO时,你在做什么?模拟器硬件设置正确吗?
  • 模拟器 ios 6.1。这是视网膜
  • 还有真正的 iPhone 设备 iOS 6. Retina。还是一样

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


【解决方案1】:

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

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

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

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

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

【讨论】:

  • 我在模拟器 iOS 6.1 Retina 中运行它
  • 刚刚在 Retina iPhone ios 6 上尝试过。仍然没有响应这个选择器
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-26
  • 1970-01-01
相关资源
最近更新 更多