粒子系统libGDX

14

有没有人能给我一个好的例子,说明如何在libGDX中制作粒子系统?我已经查看了libGDX源代码中的测试示例,但仍然很难理解。也许对它的一个好的解释会有所帮助。我想制作一些带有大量彩色粒子的爆炸效果。非常感谢任何帮助!

2个回答

29

在你的游戏类中定义一个粒子效果:

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。使用该编辑器,您应该可以创建出漂亮的特效。否则,您可以从示例中复制粒子文件并进行修改。


非常感谢,这正是我所寻找的。一个不错、简单的例子和解释……粒子编辑器对你有用吗?我无法打开它,有什么想法吗?再次感谢! - Alex_Hyzer_Kenoyer
4
你还需要调用 particleEffect.start(); 来开始粒子系统。 - DRiFTy
2
在我的设置中,.start() 不是必需的...奇怪的是,可能在 particleEffect 的初始化中某处调用了它。至于编辑器,我不太确定为什么,但只有在我将其下载到默认下载文件夹并从浏览器内部启动时才能运行。可能是由于一些 Java Web Start 安全策略... - Dominik Bucher
2
我认为只有在你的效果不连续时才需要使用 start()。从我所看到的情况来看,连续效果似乎可以自行运行。至于 ParticleEditor,我会建议直接从 SVN 的源代码中构建它。这就是我所做的,而且效果非常好。 - DRiFTy
"Gdx.files.internal("data"));" 是什么? - Herb Meehan
如果您查看load()的定义,它会说:load(FileHandle effectFile, FileHandle imagesDir),因此我们只需指定图像所在的目录/文件夹(即作为粒子渲染的那些图像)。 - Dominik Bucher

3

2
抱歉问这么愚蠢的问题,但我该如何从源代码运行它...谢谢。 - user924941

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接