私のV1 cocos2d-xアプリをV3にアップデートしていますが、コールバックが発生しています。私はこのようなラムダとコールバックを行うことができますcocos2d-x v3パラメータ/変数としてCallFuncを使用する
、正常に動作します -
auto mcb = CallFunc::create([this](){
this->doCallback(kEVENT_MENU_IS_ONSCREEN);
});
hex->runAction(Sequence::create(somethingthattakestime, mcb, NULL));
しかし、私は、関数にCallFunc変数を渡す私のオブジェクトに格納し、その後、使用/いくつかでそれを呼びたいです将来のポイント。関数内
item->callfunc = callfunc;
- -
シンプルで設定CallFunc * callfunc;
- 私が定義クラスにおいて
void LBMenuAddMenuItemName(CallFunc * callfunc);
私もそうstaticとしてCallFunc変数を宣言ハングする -
私はこれを使用したいときその後、私がやる -
Sequence * seq = Sequence::create(callfunc,NULL);
somesprite->runAction(seq);
はしかし、これはSIGSEGV(GLTHREAD)とひどく終了します。
typeid(callfunc).name()を使用すると、callfuncがCallFuncであることが示されます。宣言でsetTag(69)を使用してから、SIGSEGVの前にgetTag()を実行すると分かりやすい値が返されません。
私が間違っていることと遅延コールバックの正しい方法を説明できる人はいますか?
ありがとうございました!
LB