cocos2d-x之触摸目标的判断
需要在触摸事件的内部添加判断目标的代码
1 //EventListenerTouchOneByOne表示一个接一个的触发,每次触摸只能监听到一个触摸点 2 auto listener = EventListenerTouchOneByOne::create(); 3 //onTouchBegan表示开始触摸的事件 4 listener->onTouchBegan = [](Touch *t, Event *e){ 5 //通过事件e来获取到当前的事件的目标,然后获取到目标的边界区域 6 //e->getCurrentTarget()->getBoundingBox() 7 //然后判断是否包括一个点,就是触摸点:.containsPoint() 8 //获取到触摸的位置t->getLocation() 9 //此时事件的目标即node的边界区域包括了当前的触摸点,说明所触摸的就是当前的对象 10 if (e->getCurrentTarget()->getBoundingBox().containsPoint(t->getLocation())){ 11 log("onTouchBegan!"); 12 } 13 14 return false; 15 }; 16 //getEventDispatcher获取事件的派发器, 17 //addEventListenerWithSceneGraphPriority(事件, 节点);添加事件监听器 18 Director::getInstance()->getEventDispatcher()->addEventListenerWithSceneGraphPriority(listener, label);