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)