zoukankan      html  css  js  c++  java
  • Cocos2dx 粒子销毁问题

    Cocos2dx    粒子销毁问题

    DionysosLai(906391500@qq.com) 2014-7-3

             之前在调试粒子特效时,在粒子编辑器有个选项是用来调整粒子的生命时间,当粒子存在的时间超过这个值时,粒子就会消失不见。自然而然,在使用粒子系统做特效事,将这个粒子的消失不见。当作了粒子的自己主动销毁功能。

             后来在使用粒子在做泡沫特效时,每隔一段时间就须要产生一组泡沫。当游戏执行一段时间是。突然发现游戏变得有点儿卡顿。

    打开调试时。发现节点数目不停的添加,添加的速度和泡沫产生的速度一致。归结原因,这时因为粒子并不会自己主动销毁。

    因此,在使用粒子时,我们尽量要自己重写粒子系统。当粒子执行的时间超过其生命时,就要自己主动销毁了。

    详细的函数例如以下:getLife();

             这里给出我使用的详细方法:

    void SDMPartical::initData( const char *plistFile )
    {
    	m_pPartical = CCParticleSystemQuad::create(plistFile);
    	m_pPartical->setPosition(CCPointZero);//设置发射粒子的位置
    	this->addChild(m_pPartical);
    
    	this->scheduleOnce(schedule_selector(SDMPartical::deletePartical), m_pPartical->getLife()+1.f);
    }
    
    void SDMPartical::deletePartical( float delta )
    {
    	this->removeChild(m_pPartical, true);
    }	
    

             注意:在这里我在其生命数后1s才调用函数。移出这个粒子,这时因为我在调试时,发现当恰好在其生命结束时,就调用函数销毁,粒子消失的很突兀。因此。加了1s缓冲时间。


  • 相关阅读:
    如何进入docker 使用root用户的方式
    阿里云服务搭建nginx并配置
    阿里云容器部署Redis集群
    Redis运维利器 -- RedisManager
    远程连接-使用SSH密钥对远程登录阿里云云服务器
    第1课:SQL注入原理深度解析
    数据库设计三大范式
    linux指令大全(归类整理)
    linux目录结构
    linux-创建/使用快照/克隆(类似windows中备份还原)
  • 原文地址:https://www.cnblogs.com/cynchanpin/p/7252620.html
Copyright © 2011-2022 走看看