iOS编程期间iPad3上的显示不正确

时间:2012-08-31 08:16:15

标签: ios xcode cocos2d-iphone resolution ipad-3

我正在使用Cocos2D开发iOS应用程序,我遇到了一个非常奇怪的问题如下。

一开始,只有一个完整版本,一切都适用于iPad2和3.现在,我计划创建一个精简版本,所以我在Apple网站上注册了一个新证书。使用lite证书,Xcode中生成的精简版可以很好地在iPad2上运行,但iPad3上的显示器变成了屏幕的一半。看来这个问题是因为新证书,请你帮我解答一下这个问题?提前谢谢。

2 个答案:

答案 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)

解决问题时,您可以考虑以下两点:

  1. 确保您的作品副本的分辨率为2倍,后缀为“-hd”,例如“ninja.png”和“ninja-hd.png”。这是通过iOS做@ 2x的方式。
  2. 检查代码中是否启用了视网膜:

    [[CCDirector sharedDirector] enableRetinaDisplay: YES];

  3. 希望有所帮助!如前所述 - 这绝对不是证书问题! (幸运的是你;))