我想在sprite上用另一个sprite命中时创建一个火焰粒子系统:
void MySprite::hit()
{
auto ps = cocos2d::ParticleFire::create();
ps->setPositionType(cocos2d::ParticleSystem::PositionType::RELATIVE);
this->addChild(ps);
}
我使用' setPosition3D'并且' lookAt'在场景中移动相机的方法。 当我移动相机时,粒子系统卡在屏幕上(并且在窗口中始终有一个固定的位置)并且不遵循父精灵!
我尝试了不同的位置类型,关注动作,setSourcePosition方法,但问题没有解决。
我在Visual Studio 2013中使用cocos2d-x v3.3和C ++。
答案 0 :(得分:0)
我解决了这个问题。
我使用了两个摄像头,一个用于HUD(CameraFlag :: DEFAULT),另一个用于场景(CameraFlag :: USER1)。我忘了为粒子系统设置相机标志:
ps->setCameraMask(cocos2d::CameraFlag::USER1);
和默认摄像头显示的粒子系统。