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

フレームごとに新しいエフェクトを作成している場合、フレームごとにリセットされるため、移動したり、何もしたりすることはありません。ループの外側でエフェクトを作成する必要があります。

セットアップなしでパーティクルエフェクトがどのようになるかわかりません。したがって、テクスチャを追加して、そのプリファレンスを設定することもお勧めします。

于 2012-04-16T09:18:04.373 に答える
3

ParticleEffect のコンストラクタを作成するだけでは不十分だと思うので、作成したエフェクト オブジェクトを使用して、次のようにパーティクル エフェクト ファイルをロードする必要があります。また、このことをループから外す必要があります。

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

于 2012-04-17T05:02:36.430 に答える
1

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

ビデオ チュートリアルをもう一度見て ください。

チュートリアル自体はビデオよりも少ないものをカバーしていますが、更新されることを願ってここに貼り付けます: https://github.com/libgdx/libgdx/wiki/2d-particle-effects

于 2014-05-04T00:14:29.067 に答える
0

クラスのコンストラクターでパーティクル エフェクトを作成します。render メソッドで毎回パーティクル エフェクト オブジェクトを作成しないでください。そのため、パーティクル エフェクトは毎回初期化されており、何も見えません。

于 2013-09-07T19:01:07.040 に答える