【问题标题】:cocos2d iphone 5 4 inch display supportcocos2d iphone 5 4 英寸显示器支持
【发布时间】:2012-09-19 19:09:46
【问题描述】:

我一直在到处寻找这个,但没有运气。

如何为更大的 4 英寸 iPhone 5 显示屏准备基于 cocos2d 的游戏? 我的应用程序正在运行,但我想为更大的 4 英寸显示屏增强它。 Cocos2d 为视网膜显示图像使用自己的后缀。对于 iPhone 4 和 4S 的视网膜显示,它是image-hd.png。 iPhone 5 有后缀吗?我该如何做到这一点?

干杯。

【问题讨论】:

    标签: iphone ios cocos2d-iphone retina-display


    【解决方案1】:

    iPhone 5 没有额外的文件后缀,毕竟它只有 176 像素(88 磅)宽。它被视为普通的 Retina 手机,因此 cocos2d 将加载 -hd 文件。

    剩下的只是根据设备定位图像。最简单的方法是将两侧的 44 个点视为“死区”,在该“死区”中不会发生用户输入,也无法保证用户可以看到游戏对象。

    更新: cocos2d 2.1 添加了 -widehd 后缀。据说2.1的最终版本会将后缀重命名为-iphone5hd。

    鉴于未来的屏幕尺寸,我个人设置并使用 -568hd 后缀,因为 iPhone 5 以外的其他手机可能具有相同的分辨率。至少可以说,以特定的 iPhone 型号命名后缀有点短视。

    【讨论】:

    • -iphone5hd 适用于 2.1。感谢您提供信息。
    【解决方案2】:

    将其添加到 AppDelegate:

    [CCFileUtils setiPadRetinaDisplaySuffix:@"your suffix"];
    [CCFileUtils setiPadSuffix:@"your suffix"];
    [CCFileUtils setiPhoneFourInchDisplaySuffix:@"your suffix"];
    [CCFileUtils setiPhoneRetinaDisplaySuffix:@"your suffix"];
    

    【讨论】:

    • 如果我没有 setiPhoneFourInchDisplaySuffix 方法? Cocos2d 版本 cocos2d v2.1-beta2
    • 检查 api ref,如有必要升级
    【解决方案3】:

    不知道为什么每个人都说没有。

    iPhone5/iPod Touch 5th 的后缀是 -568h(因此 4 英寸视网膜显示)。

    总名单:

    • -高清(iPhone 4/4S、iPod Touch 4th)
    • -568h(iPhone 5、iPod Touch 5th)
    • -ipad (iPad 1st/2nd)
    • -ipadhd (iPad 3rd/4th)

    【讨论】:

      【解决方案4】:

      使用您选择的后缀将其添加到 AppDelegate:

      if((UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) && ([[UIScreen mainScreen] bounds].size.height == 568)) {
          [sharedFileUtils setiPhoneRetinaDisplaySuffix: @"-your suffix"];
      }
      

      【讨论】:

        【解决方案5】:

        我花了一段时间才弄清楚这一点,因为我是 cocos2d 的新手。所以我认为回顾一下可能对像我这样的人有帮助。在 cocos2d 2.1 中,您所要做的就是为目标屏幕尺寸创建图形并遵循 cocos 后缀命名约定。注意cocos的后缀约定和iOS的不一样。

        就我而言,我有一个占据全屏的背景图像。所以,我做了...

        1. 用于 iPhone 的 480x320 的背景.png
        2. 960x640 的 background-hd.png 用于 iPhone 视网膜(3.5 英寸)
        3. 用于 iPhone5 视网膜 (4") 的 background-iphone5hd.png

        并使用以下代码将图像加载到 CCSprite 中。 Cocos 会为你确定使用哪张图片。

        CCSprite *background = [CCSprite spriteWithFile:@"background.png"];
        background.position = ccp(background.textureRect.size.width/2,
        background.textureRect.size.height/2);
        [self addChild:background];
        

        对于像字符这样不占满屏幕的元素,cocos2d 会在 iPhone5 中自动拾取 character-hd.png。无需创建 character-iphone5hd.png 版本。

        您可以在 2.1 版发行说明中阅读更多相关信息,网址为 https://github.com/cocos2d/cocos2d-iphone/wiki/cocos2d-v2.1-release-notes

        【讨论】:

          【解决方案6】:

          这就是我为cocos2d v2.1-beta4 所做的。

          CCFileUtils.h 我添加了:

          - (void)setIphone5HDSuffix:(NSString *)suffix;
          

          CCFileUtils.m:

          - (void)setIphone5HDSuffix:(NSString *)suffix
          {
             [_suffixesDict setObject:suffix forKey:kCCFileUtilsiPhone5HD];
          }
          

          AppDelegate.m:

          [sharedFileUtils setIphone5HDSuffix:@"your_suffix"];
          

          这就够了!

          【讨论】:

            【解决方案7】:

            您是否按照以下帖子为它添加了默认图像,命名为 Default-568h@2x.png,分辨率为 1136x640?

            How to develop or migrate apps for iPhone 5 screen resolution?

            如果不行,我在cocos2d论坛上找到了这个帖子,里面有很多信息:

            iPhone 5 1136 x 640 屏幕分辨率:http://www.cocos2d-iphone.org/forum/topic/39491

            【讨论】:

            • 是的,我都找到了。但我仍然不知道如何为精灵命名 .png 文件。我的应用程序有一个启动画面,名为 Default-568h@2x.png 及其工作。问题左我如何CCSprite *player = [CCSprite spriteWithFile:@"player.png"]; 为 4 英寸显示器? Cocos2d 知道retina 显示时使用-hd 后缀,如何告诉它4 英寸retina 使用哪个图像?
            • 我在 cocos2d 的最新发行说明和文档中没有发现新的后缀。我认为您现在可以通过编程方式检测并指定您的自定义 player-568h.png 文件。并在他们发布新的 cocos2d 版本时更改它...
            【解决方案8】:

            现在 cocos2d 也支持 iPhone 宽屏了。

             -wide.png for iphone 5
             -widehd.png for iPhone 5 HD
            

            【讨论】:

              【解决方案9】:

              我只是在 Cocos2D 2.1-rc1 中玩弄后缀,并且能够让它自动加载带有“-iphone5hd”后缀的 iPhone5 文件,而不更改代码的 sharedFileUtil 部分中 AppDelegate 中的任何内容。希望也能有所帮助。

              【讨论】:

                猜你喜欢
                • 2013-09-20
                • 2012-09-14
                • 1970-01-01
                • 1970-01-01
                • 2012-09-13
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多