粒子效应[CCParticleSystemQuad将其位置wrt更改为其父级]

时间:2015-09-07 08:40:44

标签: c++ iphone cocos2d-iphone cocos2d-x ccparticlesystem

我有一个以下列方式使用的粒子系统

  DustParticle = CCParticleSystemQuad::create("dust_texture.plist");
    Vec2 pos =   Vec2(
                      BadSprite->getPositionX() 
                      BadSprite->getPositionY() 
                     );
    Vec2 World = BadSprite->getParent()->convertToWorldSpace(pos);
    Vec2 Node =  BadSprite->convertToNodeSpace(World);
    DustParticle->setPosition(Node);

    BadSprite->addChild(DustParticle);

现在这里发生了BadSprites向左移动的情况,但是粒子效果似乎停留在它发射的位置,它还假设在父母向左移动时向左移动?有关可能发生的事情的任何建议?当作为孩子附着时,粒子效果的表现会有所不同。我知道如果我附加一个精灵,它将跟随父母。

1 个答案:

答案 0 :(得分:0)

不,粒子效果应遵循精灵。我甚至将它们连接到节点(由Young Peter创建的SpriterNode,http://weibo.com/young40),就像这样,一切正常:

_characterNode = SpriterNode::create(nameScml,namePng);
_characterNode->setContentSize(sprObject->getContentSize());
this->addChild(_characterNode);

power[0] = ParticleSystemQuad::create("particle_light.plist"); // it was an array of effects on the one object
power[0]->setPosition(0, 0.5 * _characterNode->getContentSize().height);
_characterNode->addChild(power[0]);

我发现您正在使用CCParticleSystemQuad,因此它是Cocos2d-x的旧版本。也许它只是这个?我的例子是用3.6版编写的。试试这个版本。