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)