0
点赞
收藏
分享

微信扫一扫

Cocos2d-x之自定义事件


系统定义的事件,如触摸事件、键盘事件等都是被系统自动触发的。除了使用系统定义的事件之外,我们还可以自定义一些事件,它们就不是由系统来触发了,而是由我们自己写的代码来触发,如:

_listener = EventListenerCustom::create("game_custom_event1", [=](EventCustom* event){
std::string str("Custom event 1 received, ");
char* buf = static_cast<char*>(event->getUserData());
str += buf;
str += " times";
statusLabel->setString(str.c_str());
});

_eventDispatcher->addEventListenerWithSceneGraphPriority(_listener, this);

上面自定义了事件监听器,还有一个响应的方法,并被添加到了事件分发器event
dispatcher中。触发方式如下:

static int count = 0;
++count;

char* buf[10];
sprintf(buf, "%d", count);

EventCustom event("game_custom_event1");
event.setUserData(buf);

_eventDispatcher->dispatchEvent(&event);

上面这个例子创建了一个EventCustom对象,并设置它的UserData。然后通过 _eventDispatcher->dispatchEvent(&event)进行手动分发。这就触发了之前定义的事件处处理程序。处理程序被立即调用,因此可以使用本地堆栈变量作为用户数据。


举报

相关推荐

0 条评论