CCArray *children = this->getChildren();
CCObject *obj;
    
CCARRAY_FOREACH(children, obj){
    if (typeid(*obj) == typeid(Hoge)) {
        // Hogeクラスを操作
    }
}
2013年1月13日日曜日
【cocos2d-x】CCARRAY_FOREACHの使い方(一例)
addChildされてるCCNode等を継承したHogeクラスだけを操作したい時のコードです。
2013年1月9日水曜日
【cocos2d-x】androidでのハードキー対応
androidでのハードキー対応の方法です。
Sceneでキーパッドを有効にしてメソッドをオーバーライドするだけです(余計なとこは省いてます)。
HogeScene.h
Sceneでキーパッドを有効にしてメソッドをオーバーライドするだけです(余計なとこは省いてます)。
HogeScene.h
class HogeScene : public cocos2d::CCLayer {
public:
    void keyBackClicked();
    void keyMenuClicked();
};
HogeScene.m
bool HogeScene::init() {
    if (!CCLayer::init()) {
        return false;
    }
    // キーパッドを有効に
    setKeypadEnabled(true);
    return true;
}
 
void HogeScene::keyBackClicked() {
    // ハードキー
}
 
void HogeScene::keyMenuClicked() {
    // メニューキー
}
【C++】クラス名を取得する
C++でクラス名を取得する方法です。
#include <typeinfo>
#include <cxxabi.h>
void HogeScene::hoge()
{
int status;
const char* className = abi::__cxa_demangle(typeid(*this).name(), 0, 0, &status);
}
なんかよくわかりませんが__cxa_demangleでデマングルってのをしてるみたいです。
登録:
コメント (Atom)