我正在使用Cocos2D开发iOS应用程序,我遇到了一个非常奇怪的问题如下。
一开始,只有一个完整版本,一切都适用于iPad2和3.现在,我计划创建一个精简版本,所以我在Apple网站上注册了一个新证书。使用lite证书,Xcode中生成的精简版可以很好地在iPad2上运行,但iPad3上的显示器变成了屏幕的一半。看来这个问题是因为新证书,请你帮我解答一下这个问题?提前谢谢。
答案 0 :(得分:0)
这不是你的证书。你需要在iPad3上进行缩放,因为它有一个视网膜显示器。
您还需要提供适当大小的新纹理/图像,以利用视网膜显示。您可以使用现有的非视网膜艺术品,它可能看起来不错。但它看起来并不完美。
我没有用过cocos2d。您是否也在使用GlKit,因为GLkView希望您允许在secreen上使用缩放。
例如,如果您只想升级已创建的内容,可以查找视口设置的位置:
int scale = 1; // default is 1 - non-retina. It's adjusted below according to the scale on the device
if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)]
&& [[UIScreen mainScreen] scale] == 2.0) {
scale = [[UIScreen mainScreen] scale];
}
// Set the viewport
glViewport(0, 0, backingWidth*scale, backingHeight*scale);
我不会这样做,或者我不会这样做,因为它没有真正正确解决你的问题。我也很惊讶cocos2d还没有办法处理这种内置。
你渲染的视图是什么,它是一个EAGLView:UIView使用CAEAGLLayer渲染你的OPENGL或者它是一个GLKView。如果你从后者改变它,这也将解决问题,就像粘贴的代码将摆脱它一样。这两种方法都不是接近它的最佳方式。但这是对你的问题的一个简单的答案,也许其他人会关心写一个更详细的回应。
答案 1 :(得分:0)
解决问题时,您可以考虑以下两点:
检查代码中是否启用了视网膜:
[[CCDirector sharedDirector] enableRetinaDisplay: YES];
希望有所帮助!如前所述 - 这绝对不是证书问题! (幸运的是你;))