2

パーティクル エフェクトを使用しようとしていますが、アプリケーションを開始する前に、このタスクに関連するエラーが発生します。

これは私がそれを設定した方法です:

private ParticleEffect particle;

@Override
public void create(){...
            ParticleEffect particle = new ParticleEffect();
            particle.load(Gdx.files.internal("data/effects/flame1"), Gdx.files.internal("data/effects")); 
            particle.setPosition(Gdx.graphics.getWidth() /2, Gdx.graphics.getHeight() /2);
            particle.start();
            .........}
@Override
public void render(){...
            spriteBatch.begin();
            particle.draw(spriteBatch, Gdx.graphics.getDeltaTime());
            spriteBatch.end();

パーティクル エフェクト ファイルと対応するソース イメージ ファイルは、data/effects フォルダーの下にあることに注意してください。パーティクル エフェクト エディタから保存したパーティクル エフェクト ファイルは .p ファイル タイプではないようです。代わりに、「ファイル」タイプのみのようです。おそらくこれがエラーの考えられる原因ですか?

エラー:

Exception in thread "LWJGL Application" java.lang.NullPointerException
at com.name.appname.GameClass.render(GameClass.java:111)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:207)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:114)

java:111 は次のとおりです。

particle.draw(spriteBatch, Gdx.graphics.getDeltaTime());

このチュートリアルに従いました: http://www.youtube.com/watch?v=LCLa-rgR_MA

4

1 に答える 1

5

これをもう一度見てください:

private ParticleEffect particle;

@Override
public void create(){...
    ParticleEffect particle = new ParticleEffect();

これはシャドーイングと呼ばれます。誤って同じ型の新しいローカル変数を同じ名前で作成し、クラスのフィールドの代わりにそれをインスタンス化します。

それを次のように変更します。

private ParticleEffect particle;

@Override
public void create(){...
    particle = new ParticleEffect();
于 2014-03-21T12:19:15.520 に答える