根据网上的例子,写了个粒子系统重力模式下的demo。
然后我的粒子系统重力是垂直向下的,粒子系统的位置是屏幕最上方的的正中央,位置偏移量是100。
然后产生的粒子下落效果是垂直下落的:

但设置了径向加速度后,粒子居然不是垂直下落的了,会向两边偏移。
但径向加速度官方解释为平行于重力方向的加速度,我的重力垂直向下,按理说不应该会造成粒子的偏移啊!
有疑问的效果:
全部代码如下:
// Cocos2d-x-3.x
auto size = Director::getInstance()->getWinSize();
auto m_emitter = ParticleSystemQuad::createWithTotalParticles(900);
m_emitter->setTexture(Director::getInstance()->getTextureCache()->addImage(“CloseNormal.png”));
//ParticleSystem::_emitterMode默认为:Mode::GRAVITY
m_emitter->setDuration(-1);//粒子系统存在时间:-1为无限
m_emitter->setGravity(Vec2(0, -100));//重力朝正下方,-240表示加速度是:240单位距离/平方秒
m_emitter->setAngle(45);//每一个粒子出现时的角度基础值
m_emitter->setAngleVar(0);//角度的变化范围
//有问题的地方
//径向加速度,官方解释为平行于重力方向的加速度。
//粒子会从喷射中心向外部扩散,值越大扩散速度和范围越大。类似于莲蓬头喷出的水
//比如向下生成粒子垂直下落,若RadialAccel为0,那么就是直线向下落
//如果RadialAccel大于0,则会向外部扩散
//如果RadialAccel小于0,则会向内部聚拢
m_emitter->setRadialAccel(100);
m_emitter->setRadialAccelVar(0);
//切向加速度,垂直于重力方向的加速度,假设重力方向为正下方
//值>0时,切向加速度为向右的加速度
//值<0时,切向加速度为向左的加速度
m_emitter->setTangentialAccel(0);
m_emitter->setTangentialAccelVar(0);
m_emitter->setPosition(Vec2(size.width / 2, size.height));
m_emitter->setPosVar(Vec2(100, 0));
m_emitter->setLife(10);//每一个粒子的生存时间基础值N
m_emitter->setLifeVar(0);//如生存时间变化范围2,意为在N秒基础上±2秒,随机出的每一个粒子生存周期为N±2秒。
m_emitter->setStartSpin(30);//自旋起始角度基础值
m_emitter->setStartSpinVar(60);//自旋起始角度变化范围
m_emitter->setEndSpin(360);//自旋结束角度基础值
m_emitter->setEndSpinVar(360);//自旋结束角度变化范围
//颜色的变化,下面代码设定为没有变化
m_emitter->setStartColor(Color4F(255, 255, 255, 1));
m_emitter->setStartColorVar(Color4F(0, 0, 0, 0));
m_emitter->setEndColor(Color4F(255, 255, 255, 1));
m_emitter->setEndColorVar(Color4F(0, 0, 0, 0));
m_emitter->setStartSize(30);
m_emitter->setStartSizeVar(0);
m_emitter->setEndSize(20);
m_emitter->setEndSizeVar(0);
m_emitter->setEmissionRate(24);
addChild(m_emitter, 10);
