我的瓷砖地图有一个“火炬”瓷砖。我正在使用CCParticleSystemQuad发射器来发挥火焰效果。
发射器是tilemap的子级(直接位于torch tile上方)。
但是,玩家可以移动并且平铺地图也会移动(将“相机”置于播放器中心)。当发生这种情况时,发射器自然也会移动。但这就是问题所在:这样的运动会产生类似......如果火炬正在移动的效果,而不是玩家(实际情况就是如此,但效果并不好)。
很难解释。只需制作一个火焰发射器,作为tilemap的子项放置,然后将tilemap移动到右侧。效果很酷,但没有意义。
有什么想法吗?我虽然移动了发射器中的每一个现有粒子,但这听起来不太好(我有很多带有数百/数千个粒子的发射器,而且地图几乎每一帧都滚动)
答案 0 :(得分:11)
CCParticleSystem有一个positionType property,你可以用它来改变发射粒子的位置行为。
枚举定义如下:
typedef enum {
/** Living particles are attached to the world and are unaffected by emitter repositioning. */
kCCPositionTypeFree,
/** Living particles are attached to the world but will follow the emitter repositioning.
Use case: Attach an emitter to an sprite, and you want that the emitter follows the sprite.
*/
kCCPositionTypeRelative,
/** Living particles are attached to the emitter and are translated along with it. */
kCCPositionTypeGrouped,
}tCCPositionType;
您需要将粒子定位为相对或分组。这两者之间存在细微的差别,只需尝试一个然后另一个,看看哪个更适合您的用例。
particleSystem.positionType = kCCPositionTypeRelative;
particleSystem.positionType = kCCPositionTypeGrouped;
顺便说一下,这是在ParticleDesigner工具中无法更改的少数设置之一。