有没有人能给我一个好的例子,说明如何在libGDX中制作粒子系统?我已经查看了libGDX源代码中的测试示例,但仍然很难理解。也许对它的一个好的解释会有所帮助。我想制作一些带有大量彩色粒子的爆炸效果。非常感谢任何帮助!
有没有人能给我一个好的例子,说明如何在libGDX中制作粒子系统?我已经查看了libGDX源代码中的测试示例,但仍然很难理解。也许对它的一个好的解释会有所帮助。我想制作一些带有大量彩色粒子的爆炸效果。非常感谢任何帮助!
在你的游戏类中定义一个粒子效果:
public ParticleEffect particleEffect;
初始化它:
particleEffect = new ParticleEffect();
particleEffect.load(Gdx.files.internal("data/particleEffect.p"),
Gdx.files.internal("data"));
在您的 render()
方法中,将其放置在您希望颗粒发射(爆炸位置)的位置:
particleEffect.setPosition(world.effectX, world.effectY);
最后绘制它(也在render()
内部):
particleEffect.draw(spriteBatch, delta);
就是这样,非常简单明了。
另外一件事,关于特效本身,可以看看Nate的粒子编辑器,http://libgdx.googlecode.com/svn/jws/particle-editor.jnlp。使用该编辑器,您应该可以创建出漂亮的特效。否则,您可以从示例中复制粒子文件并进行修改。
particleEffect.start();
来开始粒子系统。 - DRiFTy.start()
不是必需的...奇怪的是,可能在particleEffect
的初始化中某处调用了它。至于编辑器,我不太确定为什么,但只有在我将其下载到默认下载文件夹并从浏览器内部启动时才能运行。可能是由于一些 Java Web Start 安全策略... - Dominik Bucherstart()
。从我所看到的情况来看,连续效果似乎可以自行运行。至于ParticleEditor
,我会建议直接从 SVN 的源代码中构建它。这就是我所做的,而且效果非常好。 - DRiFTyload()
的定义,它会说:load(FileHandle effectFile, FileHandle imagesDir)
,因此我们只需指定图像所在的目录/文件夹(即作为粒子渲染的那些图像)。 - Dominik Bucher