【cocos2dx 3.10】自定义事件的实现

1.定义事件名

//自定义事件名
#define TABLEEVENT_NAME      "tableEvent"


2.响应函数

void TableBall::onTableEvent(EventCustom* event)
{
	int* eventSign = static_cast(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(&_signEvent));

_signEvent不能是临时变量。


你可能感兴趣的:(cocos2d)