我目前在 Appstore 中有一个使用 Cocos2D 框架的应用程序。对于碰撞检测,我使用 glReadPixels。屏幕只有白色和黑色像素,检测到黑色像素意味着碰撞。在 iOS 5.1.1 之前一切正常,但在 iOS6 Beta(全部)中 glReadPixels 停止工作。现在 glReadPixels 返回的 RGB 值始终为 0,0,0。
有谁知道出了什么问题或如何解决?
非常感谢您的帮助!
我目前在 Appstore 中有一个使用 Cocos2D 框架的应用程序。对于碰撞检测,我使用 glReadPixels。屏幕只有白色和黑色像素,检测到黑色像素意味着碰撞。在 iOS 5.1.1 之前一切正常,但在 iOS6 Beta(全部)中 glReadPixels 停止工作。现在 glReadPixels 返回的 RGB 值始终为 0,0,0。
有谁知道出了什么问题或如何解决?
非常感谢您的帮助!
在 EAGLView.m 上更改此设置为我运行!
- (id)initWithCoder:(NSCoder*)coder {
self = [super initWithCoder:coder];
if (self) {
CAEAGLLayer *eaglLayer = (CAEAGLLayer *)self.layer;
eaglLayer.opaque = TRUE;
eaglLayer.drawableProperties = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithBool:YES],
kEAGLDrawablePropertyRetainedBacking,
kEAGLColorFormatRGBA8, kEAGLDrawablePropertyColorFormat,
nil];
// YES
self.contentScaleFactor = [UIScreen mainScreen].scale;
}
return self;
}
感谢苹果私人名单的建议——我在那里找到了解决该问题的方法。
在 Cocos2D 类“EAGLView.m”中,我在 init 方法中将“preserveBackbuffer”变量设置为“YES”。它现在也可以在 iOS 6 Beta 中再次使用。