查看: 931|回复: 3

求助!关于移除场景中的某些节点!

[复制链接]

该用户从未签到

发表于 2012-4-12 11:21:15 | 显示全部楼层 |阅读模式
现在的情况是,场景中有很多节点(如可能有球,立方体,线等各若干个),并且随着时间变化会有增加或减少(时间不确定),我若要在某个时刻(时间也不确定)移除某些节点有什么方法?之前有一个RemoveChild(int)可以移除场景中第int个节点,但这在动态变换的场景中貌似不适用。还望各位大侠指点!

该用户从未签到

发表于 2012-4-13 10:02:58 | 显示全部楼层
removeChild()可以直接用node指针作为参数

该用户从未签到

 楼主| 发表于 2012-4-13 22:20:01 | 显示全部楼层
本帖最后由 keyulunbi 于 2012-4-13 22:23 编辑

array 发表于 2012-4-13 10:02
removeChild()可以直接用node指针作为参数


谢谢array!用节点作为参数这个也知道,可能是我没把问题描述清楚,现在我详细说下:我的场景里面有很多节点,包括球,方形,椎体,面片等,其中除了“面片”之外的其它类型的节点都有可能是随时被添加或删减(移除)的,这些节点的移除根据removeChild(node)比较好处理,现在的问题是,我的场景里面的“面片”类型节点是根据时间变化循环创建添加的,如:添加到150个面片就想把第1个面片移除,添加到151个就想把原来的第2个移除……这样循环下去保持场景里只有149个面片(在这个过程中其它非面片类型节点是随时可能添加或移除的),部分关键代码如下:
   if(iCount<150)
   {
    iCount++;
    plane =staffDraw.createplane(position,rotateRadius);
    mRoot->addChild(plane.get());
   
   }
   else
   {
    iCount++;
    mRoot->removeChild(1);
    plane =staffDraw.createplane(position,rotateRadius);
    mRoot->addChild(plane.get());
   }
请问这样的移除有什么好办法吗?有没有可以给每个创建添加的面片赋予一个索引值什么的?非常感谢!

该用户从未签到

发表于 2012-4-17 10:06:04 | 显示全部楼层
要构建索引,那么自己写一个map就可以了,很简单
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表