Magic Particles: external 2D/3D particle engine for Cocos2dx

Magic Particles: external 2D/3D particle engine for Cocos2dx



I am developer of Magic Particles:

Recently I released Magic Particles v3.34. I corrected my wrapper for Cocos v3.xx too.
The info about features of my new version is located here:
Some features are shown in this video:

Latest game that uses Cocos2dx and Magic Particles is “Juggernaut Wars”:

General info about Magic Particles:

Magic Particles allows to create the special effects and playback them from own program. Magic Particles is cross-platfrom solution. At this moment API of Magic Particles exists for Windows, Mac OS, iOS, Android, Windows RT, Windows Phone, Emscripten and Marmalade SDK.
My API does not use any external functions except those ones which have been standard of C++ for a long time. That is why library draws nothing on its own, but it returns to user all information allowing to draw the special effect. Such a way allows to separate API from OS and graphic engine.
Also there is wrapper that allows to simlify the integration of API into user engine. Wrapper is an example with its own manual and open source code. The drawing of particles is exercised by wrapper.
You can download the wrapper for Cocos here:

List of commercial games that use Magic Particles:


Plugin for Adobe After Effects released. The plugin allows to open files of Magic Particles 3D in Adobe After Effects. More details on plugin could be found here:


New video tutorial: Magic Particle 3D - Interface: Graphs explained. Gray and Red Graphs.

Video tutorial about user interface of the program. Shown the difference
between Gray and Red graphs. Explained Emitter Lifetime, Particle

You can take a look on this tutorial here:


I love MP, it’s been working great on my mobile app so far.

Maybe this isn’t the best place to ask, but I’m having a problem with positioning on Windows when going fullscreen on desktops.

GLView* glview = director->getOpenGLView();
auto desktop_glview = dynamic_cast<GLViewImpl*>(glview);

It seems that no matter what cocos2d::Node I add the particle to, it’ll always position absolutely on screen, which means if I’ve got a Node in the scene at 100, 100, and I add a particle to that node at 0,0, the particle will still draw in the bottom-leftmost corner of the screen, instead of 100 pixels in, like most other nodes in cocos2dx.

Normally, I can just work around this with converting Node pos to world pos, like so:

auto particle_pos = node->convertToWorldSpace(0, 0);

So now particle_pos is positioned at 100, 100 on screen, except if I go fullscreen, where it appears to be scaling or something, like it’s at 80,80 or something. Not sure how this works exactly.

This might not be an issue with MP but I’d figure I’d ask first.


I love MP, it’s been working great on my mobile app so far.
Thanks a lot.

I have heard that Magic Particles has the problems with nodes in cocos2d. I am not user of cocos2d, and I created wrapper with minimal integration. It is only example. I have not the possibility to learn all engines in the world :slight_smile: -)


It’s all good, thanks for making the wrapper all the same!


It’s all good, thanks for making the wrapper all the same!

You are welcome!



It turns out that I had a problem with the design resolution scaling on my game which messed up the position of MP, so I resolved that a while ago and just thought to try the particles again and it worked, so there was something on my end that stopped Magic Particles from working properly.

I know this isn’t a useful comment but I wanted to clarify that the issue was a configuration issue on my end, not yours.


OK. Thanks for information :slightly_smiling_face: