查看: 1426|回复: 3

为什么removeChild没有起作用,哪位大侠帮忙看看!

[复制链接]

该用户从未签到

发表于 2011-12-10 21:58:48 | 显示全部楼层 |阅读模式
本帖最后由 zhouweibo 于 2011-12-11 17:14 编辑

if(ea.getKey()=='x'||ea.getKey()=='X')
{
       osg::ref_ptr<osgParticle:: PrecipitationEffect> precipitationEffect = new osgParticle:: PrecipitationEffect;
        precipitationEffect->snow(0.3);
        precipitationEffect->setParticleColor(osg::Vec4(1, 1, 1, 1));
        precipitationEffect->setWind(osg::Vec3(1, 0, 0));

        if(snowState)//已经下雪,———————————————————此处没有实现,不成功!
        {
                snowState = false;
                if(viewer)
                {
                              viewer->getSceneData()->asGroup()->removeChild(precipitationEffect); // 没起作用,雪依然在下
                              //precipitationEffect->setNodeMask(0);     // 这个也不行
                             std::cout<<"成功删除下雪结点!"<<snowState<<std::endl;    // 成功执行
                }

        }
        else//没有下雪
        {
                snowState = true;
                if(viewer)
                {
                        if(firstSnow)
                        {
                                firstSnow = false;
                                viewer->getSceneData()->asGroup()->addChild(precipitationEffect);
                                //precipitationEffect->setNodeMask(1);
                                std::cout<<"成功添加下雪结点!"<<snowState<<std::endl;
                        }
                        else
                        {
                                  precipitationEffect->setNodeMask(1);//————————此处暂时没有什么作用
                                std::cout<<"成功打开下雪结点的开关!"<<snowState<<std::endl;
                        }
                                               
                }
        }                               

该用户从未签到

发表于 2011-12-12 09:59:39 | 显示全部楼层
osg::ref_ptr<osgParticle:: PrecipitationEffect> precipitationEffect = new osgParticle:: PrecipitationEffect;


此节点为新建,而非已有的场景的子节点,因此删除失败

该用户从未签到

 楼主| 发表于 2011-12-11 17:11:38 | 显示全部楼层
没有人知道为什么出错吗?
我本来只是想让键盘控制,按一下x就下雪,再按一下就停止下雪
不知道是哪里出现了问题,雪一直下,停不了

该用户从未签到

 楼主| 发表于 2011-12-12 12:37:33 | 显示全部楼层
哦,谢谢了,确实是每次按键都会新建一个新对象。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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