上次看一个教程,是用ClippingNode,Image和粒子,写的一个能把图片一点一点消除的程序,而且消除的时候会在消除的部分创建一个相同颜色的粒子效果,看起来还是挺炫的。
不过遇到了一个问题,教程上是每次都通过文件创建粒子,实际上这样创建的话,如果图片比较大,那么需要创建非常多非常多的粒子,就会造成卡顿。
通过翻看代码,发现ParticleSystemQuad类有一个创建函数如下:
static ParticleSystemQuad * create(ValueMap &dictionary);
如代码所示,可以使用一个ValueMap类型的变量初始化ParticleSystemQuad.
示例如下:
ValueMap plist = FileUtils::getInstance()->getValueMapFromFile("test.plist");
auto particle = ParticleSystemQuad::create(plist);
在需要创建大量相同的粒子时,使用这样的方法进行创建,比直接使用文件来调用ParticleSystemQuad的create函数要好很多,亲测。