多个Sprite部分重叠在一起,当触摸时如何令只有最顶的Sprite响应

多个Sprite部分重叠在一起,当触摸时如何令只有最顶的Sprite响应??用的是3.4版本

直接注册精灵触摸:
Director::getInstance()->getEventDispatcher()->addEventListenerWithSceneGraphPriority(m_touchListener, sprite);

然后在触摸回调函数里面:
m_touchListener->onTouchBegan = (Touch* touch, Event* event){
auto target = event->getCurrentTarget();

            Point locationInNode = target->convertToNodeSpace(touch->getLocation());
            Rect rect = Rect(0, 0, target->getContentSize().width, target->getContentSize().height);
            
            if (rect.containsPoint(locationInNode))
            {
                auto sp = dynamic_cast<Sprite*>(target); //sp就是注册的那个精灵
                if (! sp) {
                    return true;
                }
                
                log("sprite card touch... x = %f, y = %f, cardIndex=%d", locationInNode.x, locationInNode.y, sp->getTag());

                
                return true;
            }
            return false;
        };