このようなテクスチャ アトラスからスプライト配列を作成しました。
playerSprite = atlas.createSprites("player");
テクスチャ アトラス内では、プレイヤー領域はplayer01
、player02
および と名付けられていplayer03
ます。
playerAnimation = new Animation(0.5f, playerSprite);
playerAnimation.setPlayMode(PlayMode.NORMAL);
そして、私はそれをこのようにレンダリングしました。
batch.draw(playerAnimation.getKeyFrame(animTime,true), ninja.getX(),ninja.getY(),
ninja.getWidth(),ninja.getHeight());
実行すると、これはエラーをスローします。
「スレッド「LWJGL アプリケーション」の例外 java.lang.ArithmeticException: / by zero.」
私はこれらのエラーにイライラしており、この問題ですでに多くの時間を無駄にしています。
この問題を解決するのを手伝ってください。
スタックトレース:
at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:124)
java.lang.ArithmeticException: / by zero
at com.badlogic.gdx.graphics.g2d.Animation.getKeyFrameIndex(Animation.java:142)
at com.badlogic.gdx.graphics.g2d.Animation.getKeyFrame(Animation.java:126)
at com.badlogic.gdx.graphics.g2d.Animation.getKeyFrame(Animation.java:114)
at com.m2f.ninjagame.screens.GameScreen.drawPlayer(GameScreen.java:254)
at com.m2f.ninjagame.screens.GameScreen.batchDraw(GameScreen.java:229)
at com.m2f.ninjagame.screens.GameScreen.render(GameScreen.java:115)
at com.badlogic.gdx.Game.render(Game.java:46)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:223)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:124)
textureregion も試してみました。次に、スタックトレースは次のようになりました。
java.lang.NullPointerException
at com.badlogic.gdx.graphics.g2d.SpriteBatch.draw(SpriteBatch.java:589)
at com.m2f.ninjagame.screens.GameScreen.drawPlayer(GameScreen.java:264)
at com.m2f.ninjagame.screens.GameScreen.batchDraw(GameScreen.java:231)
at com.m2f.ninjagame.screens.GameScreen.render(GameScreen.java:116)
at com.badlogic.gdx.Game.render(Game.java:46)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:223)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:124)