我正在使用LevelHelper来构建我的关卡,并且我在我的关卡中添加了一些粒子(动态初始化的CCParticleSystemQuad)。一切正常,直到我移动世界(它是Box2D中动态绘制的世界,我用相机跟随玩家)。如果我移动世界,新添加的粒子会连续发射,在正确的位置绘制,但在粒子动画之后,粒子似乎相对于全局世界/屏幕位置绘制。这给人一种奇怪的“幻觉”效果,看起来完全不切实际。应该在世界范围内重新绘制/刷新粒子
LevelHelperLoader * lh = gameLayer.lh;
LHLayer * layer = [lh layerWithUniqueName:@"MAIN_LAYER"];
NSArray * array = [lh spritesWithTag:WORTEL];
CCParticleSystemQuad * particle;
CGPoint position;
for (LHSprite * sprite in array) {
particle = [CCParticleSystemQuad particleWithFile:@"DirtParticles.plist"];
[layer addChild:particle z:0];
position = sprite.position;
position.y += sprite.contentSize.height * 0.5f;
[particle setPosition:position];
[particle resetSystem];
}
有人知道我可能做错了吗?
答案 0 :(得分:3)
尝试更改粒子位置类型:
particle.positionType = kCCPositionTypeFree;
替代方案是kCCPositionTypeRelative和kCCPositionTypeGrouped。您可能必须尝试所有人才能看到哪一个最符合您的情况,我猜它是“免费”或“相对”。