gpt4 book ai didi

c++ - 将 SEL_CallFuncO 添加到 CCArray

转载 作者:行者123 更新时间:2023-11-28 07:10:50 25 4
gpt4 key购买 nike

我的 cocos2d-X 应用程序中有以下代码未编译

   SEL_CallFuncO func1 =callfunc_selector(BPBasketLayer::addSingleNumberBasket);
SEL_CallFuncO func2 =callfunc_selector(BPBasketLayer::addSpawnPowerUp);
CCArray *arr=CCArray::create();
arr->addObject(func1);
arr->addObject(func2);

现在这是给我一个错误?我做错了什么?

亲切的问候

最佳答案

不知道错误是什么,看起来你使用了错误的 callfunc_selector基于你如何实例化func1func2 .我想你想用 callfuncO_selector因为它需要 CCObject* .

来自 CCObject.h :

typedef void (CCObject::*SEL_CallFuncO)(CCObject*);

#define callfuncO_selector(_SELECTOR) (SEL_CallFuncO)(&_SELECTOR)

编辑:

您需要遵循 Vikas 在评论中的建议并使用 std::vectorCCArray以来存放函数指针用于 CCObject仅派生类。所以像这样:

std::vector <SEL_CallFuncO> func_ptr_array;

func_ptr_array.push_back(callfuncO_selector(BPBasketLayer::addSingleNumberBasket));

func_ptr_array.push_back(callfuncO_selector(BPBasketLayer::addSpawnPowerUp));

关于c++ - 将 SEL_CallFuncO 添加到 CCArray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21002599/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com