2012-04-16 9 views
1

なぜこのコードは機能しませんか?エラーはありませんが、何も描画されません。Libgdx ParticleEffect:エラーはありませんが、何も描画されません。

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(); 

答えて

3

、それは、移動していないか、何もしないだろう。ループの外側にエフェクトを作成する必要があります。

セットアップでパーティクル効果がどのようになるか分かりません。そのため、テクスチャを追加して設定を行うこともお勧めします。

+0

私はできません英語で書く必要があります。 – Matsemann

3

ParticleEffectのコンストラクタを作成するだけでは不十分だと思うので、次の方法で作成したエフェクトオブジェクトを使用してパーティクルエフェクトファイルをロードする必要があります。また、このことをループから取り除かなければなりません。 (Gdx.files.internal( "data/yellow_particle")、 Gdx.files.internal( "data"));

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

そして再びビデオチュートリアルを見る - あなたは多くのものをいじりし、不足している:チュートリアル自体はビデオよりも、少ないものをカバーし、それが更新されます希望のためにここに貼り付け http://www.youtube.com/watch?v=LCLa-rgR_MA

を: https://github.com/libgdx/libgdx/wiki/2d-particle-effects

関連する問題