1.定义事件名
//自定义事件名
#define TABLEEVENT_NAME "tableEvent"
2.响应函数
void TableBall::onTableEvent(EventCustom* event)
{
int* eventSign = static_cast<int*>(event->getUserData());
switch (*eventSign)
{
case TURNHIT_EVENT:
{
CCLOG("turn other hit ball");
}
break;
default:
break;
}
}
event->getUserData()可以获取到存放附加信息的指针
3.生产自定义消息
//自定义事件
auto listenerCustom = EventListenerCustom::create(TABLEEVENT_NAME, CC_CALLBACK_1(TableBall::onTableEvent, this));
eventDispatcher->addEventListenerWithFixedPriority(listenerCustom, 3);
4.触发自定义事件
//进入一轮击球
_signEvent = TURNHIT_EVENT;
Director::getInstance()->getEventDispatcher()->dispatchCustomEvent(TABLEEVENT_NAME, static_cast<void*>(&_signEvent));
_signEvent不能是临时变量。