0

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

一开始只有完整版,在iPad2和3上一切正常。现在,我打算创建一个精简版,所以我在Apple网站上注册了一个新证书。使用 lite 证书,Xcode 中生成的 lite build 在 iPad2 上可以正常工作,但在 iPad3 上的显示变成了屏幕的一半。好像是新证书的问题,能帮我解答一下吗?提前致谢。

4

2 回答 2

0

这不是你的证书。您需要允许在 iPad3 上进行缩放,因为它具有视网膜显示屏。

您还需要提供适当大小的新纹理/图像以利用视网膜显示。您可以使用现有的非视网膜艺术品,它可能看起来还不错。但它看起来并不完美。

我没用过cocos2d。您是否也在使用 GlKit,因为 GLkView 希望您允许在屏幕上进行缩放。

例如,如果您只想升级您已经创建的内容,您可以查找设置视口的位置:

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。如果您从后者更改它,这也将摆脱问题,就像粘贴的代码将摆脱它一样。两者都不是处理它的最佳方式。但这是对您问题的简单回答,也许其他人会关心写一个更详细的回复。

于 2012-08-31T08:20:50.007 回答
0

解决问题时可以考虑两件事:

  1. 确保您的作品副本具有 2 倍分辨率并带有“-hd”后缀,例如“ninja.png”和“ninja-hd.png”。这是 cocos 通过 iOS 执行 @2x 的方式。
  2. 在适当的时候检查您的代码中是否启用了视网膜:

    [[CCDirector sharedDirector] enableRetinaDisplay: YES];

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

于 2012-08-31T11:08:20.293 回答