Lab

Cocos2d-x v3:Nodeの種類を特定する

 Tag :  Published : 2014-8-7

Pocket

typeidを使用します。
ノードの種類を判定します。

種類の特定

version3になってautoを多用するようになりましたが、いろいろなソースコードを参考にさせてもらってると、これSprite?Menu?。。。みたいに迷ってしまう事がたまにあります。
ここでは、それぞれの種類を調べてみます。

    auto sprite = Sprite::create();
    log("これは%sです", typeid(*sprite).name()); //これはN7cocos2d6SpriteEです

    auto label = Label::create();
    log("これは%sです", typeid(*label).name()); //これはN7cocos2d5LabelEです
    
    auto menuItem = MenuItem::create();
    log("これは%sです", typeid(*menuItem).name()); //これはN7cocos2d8MenuItemEです
    
    auto layer = Layer::create();
    log("これは%sです", typeid(*layer).name()); //これはN7cocos2d5LayerEです
    

端々にくっついている英数字がイマイチ解読できてませんが、これで判別できそうです。