ここでtry catchパフォーマンスの他の投稿を読んだことは確かですが、私のポイントで使用しても問題ないかどうかはわかりません。
gameLoop のいくつかのポイントで使用しています。
初めに。私は libgdxStage and Actor
システムを使用しています。しかし、マップを変更すると、ステージをクリアすると、ステージでスローすることがありNullPointerException
ます。
Exception in thread "LWJGL Application" java.lang.NullPointerException
at com.badlogic.gdx.scenes.scene2d.Group.act(Group.java:48)
at com.badlogic.gdx.scenes.scene2d.Stage.act(Stage.java:202)
at com.badlogic.gdx.scenes.scene2d.Stage.act(Stage.java:166)
at com.portaaenigma.screens.GameScreen.render(GameScreen.java:91)
at com.badlogic.gdx.Game.render(Game.java:46)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:202)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:110)
他の方法では処理できないため、単純な try catch を追加しました。ステータスで試してみたのですが、マップを変更してステージをクリアし、新しいモンスターを追加しながら、ステータスを別のものに変更します。しかし、実際には同じエラーが発生します。try キャッチは次のようになります。
if (this.status == GameStatus.GAME) {
try {
this.figureStage.act(); // figures act <-- this is line 91
} catch (NullPointerException e) {
// catching nullpointer at mapchange
Gdx.app.log(this.getClass().getSimpleName(),
"Nullpointer catched at mapswitch: " + e.getMessage());
}
}
私は多かれ少なかれ「修正」ソリューションのように見えるので、これで問題ないかどうか少し混乱しています。問題なく動作します。確かに、マップを変更すると時々スローされますが、理由はわかりません。
また、モンスターのルックアップ メソッドに try catch を追加する必要があります。モンスターでの衝突検出で範囲外になっている間にマップ変更に入ると。
さて、一般的な質問は、これが受け入れられる解決策であるか、それとももっと良い解決策があるべきかということです.