Edited at

cocos2d-xマクロまとめ

More than 1 year has passed since last update.

普段よく使用しているマクロをまとめてみた

気付いた時に随時追加する予定

バージョン

cocos2d-x 3.14.1


判別系


デバッグチェック

#if COCOS2D_DEBUG


プラットフォーム


Android

#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)


iOS

#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)


Mac

#if (CC_TARGET_PLATFORM == CC_PLATFORM_MAC)

以下略


展開系


createメソッド作成

cocosのお作法的にstaticなクリエイトメソッドを作る

例えば

CREATE_FUNC(UnitCard)

みたいにすると

static UnitCard* create()

{
UnitCard *pRet = new(std::nothrow) UnitCard();
if (pRet && pRet->init())
{
pRet->autorelease();
return pRet;
}
else
{
delete pRet;
pRet = nullptr;
return nullptr;
}
}

みたいに展開される


メモリ解放

安全にメモリ解放を行う

とはいえ、nullチェックをする程度なので、完全に安全というわけではない

CC_SAFE_RELEASE_NULL(ptr)


シンセサイザ

rubyのアクセサみたいなやつ

メンバ変数とゲッターとセッターをまとめて用意してくれる感じ

例えば

CC_SYNTHESIZE(std::string, _name, Name)

みたいにすると

protected:

std::string _name;

public:
std::string getName();
void setName();

みたいに展開される


  • 通常型

CC_SYNTHESIZE


  • 通常型(展開時にconst $type&がつけられる)

CC_SYNTHESIZE_PASS_BY_REF


  • セッターを作らない

CC_SYNTHESIZE_READONLY


  • セッターを作らない(展開時にconst $type&がつけられる)

CC_SYNTHESIZE_READONLY_PASS_BY_REF


  • セット時に既に値が入っていた場合、releaseする

CC_SYNTHESIZE_RETAIN


システム系


ログ出力

CCLOG(format, ...)


警告

CCASSERT(condition)