为通用应用创建#define PTM_RATIO

时间:2013-06-25 02:57:28

标签: box2d cocos2d-x

我有一个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)

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

非常感谢帮助实现这一目标!

1 个答案:

答案 0 :(得分:0)

试试这个:

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

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

e.g。

#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

你可以玩那个