0

我敢肯定这个问题之前可能已经被问过......</p>

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

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

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

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

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

如果有人可以解释那就太好了!

谢谢。

4

1 回答 1

0

在 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)
于 2013-09-10T02:53:56.900 回答