1

为什么这段代码不起作用。没有错误,但没有绘制任何内容。

render方法包含:

    effect = new ParticleEffect();
    effect.setPosition(200, 200);
    effect.start();

    float delta = Gdx.graphics.getDeltaTime();
    GL10 gl = Gdx.app.getGraphics().getGL10();
    gl.glClear(GL10.GL_COLOR_BUFFER_BIT);

    spriteBatch.begin();

    effect.draw(spriteBatch, delta);

    spriteBatch.end();
4

4 回答 4

3

我认为只为 ParticleEffect 创建构造函数是不够的,因此您必须使用您以下列方式创建的效果对象来加载粒子效果文件。你也必须把这件事排除在外。

effect.load(Gdx.files.internal("data/yellow_particle"), Gdx.files.internal("data"));

于 2012-04-17T05:02:36.430 回答
3

如果您每帧都创建一个新效果,它永远不会移动或做任何事情,因为它将在每帧重置。您应该在循环之外创建效果。

我不知道没有设置的粒子效果会如何。因此,您还应该尝试添加纹理并设置它的首选项。

于 2012-04-16T09:18:04.373 回答
1

运行一次:

effect = new ParticleEffect();
effect.load(Gdx.files.internal("path/to/your/particle.p", "directory/with/your/particle/png"));
effect.setPosition(200, 200);
effect.start();

在渲染中运行:

spriteBatch.begin();

effect.draw(spriteBatch, delta);

spriteBatch.end();

并在处置:

effect.dispose();

Particle.png 可以从 libgdx 源复制,例如: https ://github.com/libgdx/libgdx/blob/master/extensions/gdx-tools/assets/particle.png

再看一遍视频教程——你搞砸了,错过了很多东西: http ://www.youtube.com/watch?v=LCLa-rgR_MA

教程本身涵盖的内容比视频少,但粘贴在这里希望它会更新: https ://github.com/libgdx/libgdx/wiki/2d-particle-effects

于 2014-05-04T00:14:29.067 回答
0

在类的构造函数中制作粒子效果。不要每次在您的渲染方法中制作粒子效果对象。这就是为什么,你的粒子效果每次都在初始化,你什么都看不到。

于 2013-09-07T19:01:07.040 回答