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不能是临时变量。
本文详细介绍了如何在游戏开发中定义自定义事件名、响应函数、生产自定义消息及触发自定义事件的过程,通过实例展示了在游戏场景中实现事件驱动逻辑的方法。
587

被折叠的 条评论
为什么被折叠?



