Cocos2d iphone cocos2d中屏幕分辨率的处理

Cocos2d iphone cocos2d中屏幕分辨率的处理,cocos2d-iphone,Cocos2d Iphone,我相信这个问题以前可能有人问过 现在我正在从Android移植我的游戏。现在我已经完全集成了cocos2d,我已经准备好了。但我想确保我了解缩放是如何工作的 在Android中,您只需提供场景的宽度和高度,图形会根据设备进行放大或缩小 从阅读来看,它在IOS上似乎不是这样工作的。那么,如何设计3g、4、5和ipad等屏幕分辨率呢 我在阅读,我知道最好不要硬编码屏幕坐标。说到这里,似乎唯一需要缩放的就是游戏的背景图像 也许我错了,我对它的工作原理有点困惑 如果有人能解释,那就太好了 谢谢。在Coc

我相信这个问题以前可能有人问过

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

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

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

我在阅读,我知道最好不要硬编码屏幕坐标。说到这里,似乎唯一需要缩放的就是游戏的背景图像

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

如果有人能解释,那就太好了


谢谢。

在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)