//创建一个点击事件
auto MyListener = EventListenerTouchOneByOne::create();
MyListener->setSwallowTouches(true);//阻止触摸向下传递
MyListener->onTouchBegan = [](Touch* touch, Event* event)
{
auto target = static_cast<Sprite*>(event->getCurrentTarget());//获取的当前触摸的目标
Point locationInNode = target->convertToNodeSpace(touch->getLocation());
Size s = target->getContentSize();
Rect rect = Rect(0, 0, s.width, s.height);
if (rect.containsPoint(locationInNode))//判断触摸点是否在目标的范围内
return true;
else
return false;
};
//把点击监听添加到监听序列中,因为只创建了一个监听,一个监听只能绑定到一个对象上,所以其他对象要使用监听则克隆
_eventDispatcher->addEventListenerWithSceneGraphPriority(MyListener, star_box);//道具栏
_eventDispatcher->addEventListenerWithSceneGraphPriority(MyListener->clone(), pause_box);//暂停栏
auto MyListener = EventListenerTouchOneByOne::create();
MyListener->setSwallowTouches(true);//阻止触摸向下传递
MyListener->onTouchBegan = [](Touch* touch, Event* event)
{
auto target = static_cast<Sprite*>(event->getCurrentTarget());//获取的当前触摸的目标
Point locationInNode = target->convertToNodeSpace(touch->getLocation());
Size s = target->getContentSize();
Rect rect = Rect(0, 0, s.width, s.height);
if (rect.containsPoint(locationInNode))//判断触摸点是否在目标的范围内
return true;
else
return false;
};
//把点击监听添加到监听序列中,因为只创建了一个监听,一个监听只能绑定到一个对象上,所以其他对象要使用监听则克隆
_eventDispatcher->addEventListenerWithSceneGraphPriority(MyListener, star_box);//道具栏
_eventDispatcher->addEventListenerWithSceneGraphPriority(MyListener->clone(), pause_box);//暂停栏