Cocos2dx淌坑日记:粒子系统PositionType的正确使用

时间:2023-03-08 19:56:20
Cocos2dx淌坑日记:粒子系统PositionType的正确使用

Cocos2dx中的粒子系统,有三种定位方式,对应于不同需求。

之前我有一个想做的效果,是类似彗星的扫尾。但是当父节点也就是CCLayer跟着物体移动的时候,发现尾巴并没有跟随CCLayer移动,而是保持之前的屏幕位置。此时还以为出了bug,百思不得其解,进去查代码,发现是通过visit访问的,也就是说应用了上层父亲的transform,那为什么不跟着CCLayer走呢?

之后才发现,原来是PositionType设置导致的结果:

kCCPositionTypeFree 这个是默认的设置。在这个设置下粒子系统不会随父节点运动,而是保持和世界坐标固定的位置。用来实现类似跟在物体后面的扫尾效果,我的实现之所以不能这么用,是因为我没有把它挂在物体上,而是挂在了和物体同一个的父节点上。

kCCPositionTypeRelative。在这个设置下粒子系统所有的粒子都会跟随着节点做运动,这个适合于我的实现方式。