LoginSignup
4
5

More than 5 years have passed since last update.

cocos2d-xマクロまとめ

Last updated at Posted at 2016-12-29

普段よく使用しているマクロをまとめてみた
気付いた時に随時追加する予定

バージョン
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)

4
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5