cocos2d-x-3.x bringToFront & sendToBack实现
2024-10-20 16:24:33
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), std::end(siblings), nodeComparisonLess);
_eventDispatcher->setDirtyForNode(this);
}
}
最新文章
- 异步 HttpContext.Current 为空null 另一种解决方法
- Postgresql 迁移随笔一
- 阅读《LEARNING HARD C#学习笔记》知识点总结与摘要三
- 如何在elasticsearch中查看Logstash打到elasticsearch的数据
- Android HttpURLConnection Post 参数 (https)
- (JavaScript 2.0: The Complete Reference, Second Edition)javascript 2.0完全手册第二版 翻译说明
- flex 加载arcgis 的地图json
- 各种less开发工具
- wp实例开发精品文章源码推荐
- 对JDBC的优化,BeanUtils和DBUtils
- 搞懂MySQL InnoDB B+树索引
- kubernetes 源码安装部署 1.12
- linux 解决乱码问题
- python之路——15
- RunLoop的应用场景---关于滑动tableView的时候NSTimer 暂停的问题
- Lab 1-4
- IdentityServer4之Clients、Scopes、Claims与Token关联
- dedecms提取某栏目及子栏目名称到首页怎么弄
- Html页面Dom对象之Element
- NSLayoutConstraint 遍历查找对应的约束