0

我有一个 cocos2d-x/box2d 项目我希望 PTM_RATIO 的#define 对于 ipod 和 ipad 部署是不同的。如何在 C++ 中设置这个#define?

到目前为止,在搜索互联网后,我已经尝试将此代码放在一个 Objective-C 文件中

#ifdef UI_USER_INTERFACE_IDIOM
#define IS_IPAD (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
#else
#define IS_IPAD false
#endif
#define PTM_RATIO (IS_IPAD ? 32 : 16)

但是在 ipad 上进行测试时,IS_IPAD 总是定义为 false,并且删除 #ifdef 表示 UI_USER_INTERFACE_IDIOM() 未声明。

帮助使其工作将不胜感激!

4

1 回答 1

0

尝试这个:

#define PTM_RATIO ((UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) ? 32.0 :16.0)

您还可以尝试为每个设备定义一些宏并使用它们。

例如

#define IS_IPAD UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad
#define IS_IPHONE UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone
#define IS_IPHONE_5 ( IS_IPHONE && IS_HEIGHT_GTE_568 )
// ...
#define PTM_RATIO ( IS_IPHONE_5 && I_IPAD ) ? yesvalue : novalue

你可以玩那个

于 2013-10-09T06:26:21.827 回答