通常Cocos2d-X实现定时任务通过

void Node::schedule(SEL_SCHEDULE selector, float interval, unsigned int repeat, float delay);
void Node::scheduleOnce(SEL_SCHEDULE selector, float delay);

这两种方式,都是传递 SEL_SCHEDULE 类型的方法指针,查看SEL_SCHEDULE定义可以发现定义如下:

typedef void (Ref::*SEL_SCHEDULE)(float);

这个定义只传递一个 float 参数,如果需要传递参数怎么办呢,其实可以通过如下方式:
getScheduler()->schedule(CC_CALLBACK_1(AAA::run, this, 参数1, 参数2), this, 0.0f, 0, 2.0f, false, “定时器名称”);

void Scheduler::schedule(const ccSchedulerFunc& callback, void *target, float interval, unsigned int repeat, float delay, bool paused, const std::string& key)

定时任务的Node一定要加入到 场景中才会执行哦。!

打赏
Cocos2d-X定时任务实现参数传递
Tagged on:     

发表评论