【问题标题】:Dealing with screen resolutions in cocos2d在 cocos2d 中处理屏幕分辨率
【发布时间】:2013-09-10 10:53:56
【问题描述】:

我敢肯定这个问题以前可能有人问过……

现在我正在从 Android 移植我的游戏。现在我已经完全集成了 cocos2d,我准备好了。但我想确保我了解缩放的工作原理..

在 Android 中,您只需为场景提供宽度和高度,图形会根据设备放大或缩小。

从阅读来看,它似乎在 IOS 上不是这样工作的。那么如何针对 3g、4,5 和 ipad 设备等屏幕分辨率进行设计呢?

我正在阅读,我知道最好不要硬编码屏幕坐标。话虽如此,似乎唯一需要缩放的就是游戏的背景图像?

也许我错了,我对它的工作原理有点困惑。

如果有人能解释一下那就太好了!

谢谢。

【问题讨论】:

    标签: cocos2d-iphone


    【解决方案1】:

    在 Cocos2D 中,会根据相关前缀自动选择图像:name.png 用于非视网膜设备,name-hd.png 用于视网膜,name-ipad.png 用于 ipad 1 和 mini,name-ipadhd.png 用于 ipad 视网膜。

    对于缩放,我有一些有用的定义,可让您根据特定平台进行更改:

    #define MIDSCREEN  ccp([CCDirector sharedDirector].winSize.width/2, [CCDirector sharedDirector].winSize.height/2)
    #define WINSIZE [[CCDirector sharedDirector] winSize]
    #define WINHEIGHT [[CCDirector sharedDirector] winSize].height
    #define WINWIDTH [[CCDirector sharedDirector] winSize].width
    #define IS_IPAD() (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
    #define IS_RETINA() (CC_CONTENT_SCALE_FACTOR() == 2)
    #define REAL_CONTENT_SCALE_FACTOR() (CC_CONTENT_SCALE_FACTOR() * (IS_IPAD() + 1))
    #define CONTENT_SCALE_FACTOR() (IS_IPAD() ? 2.0 : CC_CONTENT_SCALE_FACTOR())
    #define IPAD_SCALE() (IS_IPAD() ? 2.0 : 1.0)
    #define CCP_IPAD(___X___, ___Y___) (IS_IPAD() ? ccp((___X___ + 16.0f) * CONTENT_SCALE_FACTOR(), (___Y___ + 32.0f) * CONTENT_SCALE_FACTOR()) : ccp(___X___, ___Y___))
    #define CCP_IPHONE(___X___, ___Y___) (IS_IPAD() ? ccp(___X___, ___Y___) : ccp((___X___ / 2.0) - 16.0f, (___Y___ / 2.0) - 32.0f))
    #define IS_IPHONE5() ([[CCDirector sharedDirector] winSize].width == 568 || [[CCDirector sharedDirector] winSize].height == 568)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多