
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实现所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)