diff --git a/cocos/2d/CCParticleSystem.cpp b/cocos/2d/CCParticleSystem.cpp index 25c1066098..1dc57a04f2 100644 --- a/cocos/2d/CCParticleSystem.cpp +++ b/cocos/2d/CCParticleSystem.cpp @@ -771,7 +771,12 @@ void ParticleSystem::update(float dt) Vec2 newPos; - if (_positionType == PositionType::FREE || _positionType == PositionType::RELATIVE) + if (_positionType == PositionType::FREE) + { + Vec2 diff = convertToNodeSpace(currentPosition) - convertToNodeSpace(p-> startPos); + newPos = p->pos - diff; + } + else if(_positionType == PositionType::RELATIVE) { Vec2 diff = currentPosition - p->startPos; newPos = p->pos - diff;