0

私は cocos2d-x/box2d プロジェクトを持っています。PTM_RATIO の #define を ipod と ipad の展開で異なるものにしたいです。この #define を C++ で設定するにはどうすればよいですか?

これまでインターネットを検索した後、このコードを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() が宣言されていないことがわかります。

これを機能させるのを手伝っていただければ幸いです。

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 に答える