Cocos2d-x   发布时间:2022-05-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了cocos2d-x-3.x bringToFront & sendToBack实现大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
void Node::bringToFront(void)
{
    auto parent = this->getParent();
    if (parent != nullptr && parent->getChildrenCount() >= 2) {

        auto& siblings = parent->getChildren();

        auto last = *siblings.rbegin();
        auto topOrderOfArrival = last->getOrderOfArrival();
        auto topLocalZOrder = last->getLocalZOrder();

        for (size_t idx = siblings.size() - 1; idx > 0; --idX)
        {
            auto sibling = siblings.at(idX);
            if (sibling != this) {
                sibling->setOrderOfArrival(siblings.at(idx - 1)->getOrderOfArrival());
                sibling->_setLocalZOrder(siblings.at(idx - 1)->getLocalZOrder());
            }
            else {
                break;
            }
        }

        this->setOrderOfArrival(topOrderOfArrival);
        this->_setLocalZOrder(topLocalZOrder);

        std::sort(std::begin(siblings),std::end(siblings),nodeComparisonLess);
        _eventDispatcher->setDirtyForNode(this);
    }
}

void Node::sendToBACk(void)
{
    auto parent = this->getParent();
    if (parent != nullptr && parent->getChildrenCount() >= 2) {

        auto& siblings = parent->getChildren();
        auto start = *siblings.begin();
        auto bottomOrderOfArrival = start->getOrderOfArrival();
        auto bottomLocalZOrder = start->getLocalZOrder();
        
        for (size_t idx = 0; idx < siblings.size() - 1; ++idX)
        {
            auto c = siblings.at(idX);
            if (c != this) {
                c->setOrderOfArrival(siblings.at(idx + 1)->getOrderOfArrival());
                c->_setLocalZOrder(siblings.at(idx + 1)->getLocalZOrder());
            }
            else {
                break;
            }
        }

        this->setOrderOfArrival(bottomOrderOfArrival);
        this->_setLocalZOrder(bottomLocalZOrder);

        std::sort(std::begin(siblings),nodeComparisonLess);
        _eventDispatcher->setDirtyForNode(this);
    }
}

大佬总结

以上是大佬教程为你收集整理的cocos2d-x-3.x bringToFront & sendToBack实现全部内容,希望文章能够帮你解决cocos2d-x-3.x bringToFront & sendToBack实现所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。