Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/203.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 为什么在我的精灵上使用旋转(度)时会出现空指针异常?_Android_Libgdx - Fatal编程技术网

Android 为什么在我的精灵上使用旋转(度)时会出现空指针异常?

Android 为什么在我的精灵上使用旋转(度)时会出现空指针异常?,android,libgdx,Android,Libgdx,我有一个GameScreen类,里面有一个触摸板。我在GameScreen类中有一个方法(setTouchpadY())来获取touchpad的getKnobPercentY public float setTouchpadY() { return touchpad.getKnobPercentY(); } 在我的WorldRenderer类render()方法中,我尝试使用触摸板旋转精灵。gs是GameScreen类 public void render() { //render s

我有一个GameScreen类,里面有一个触摸板。我在GameScreen类中有一个方法(setTouchpadY())来获取touchpad的getKnobPercentY

public float setTouchpadY() {
  return touchpad.getKnobPercentY();
}

在我的WorldRenderer类render()方法中,我尝试使用触摸板旋转精灵。gs是GameScreen类

public void render() {
  //render stuff
  moveCamera(leon.getPosition().x, CAMERA_HEIGHT / 2);
  spriteBatch.setProjectionMatrix(cam.combined);
  spriteBatch.begin();
  drawVillage();
  drawTile();
  drawLeon();
  spriteBatch.end();

            if (leon.isAiming()) {
     leonAimArmSpriteR.rotate(gs.setTouchpadY());         //This line causing crash
  }
}

我将触摸板和按钮放入Gamescreen类中,因为它实现了屏幕和输入处理器。尝试将它们放入WorldRenderer,但到目前为止运气不佳。这是我的logcat/控制台,这是尝试运行桌面版本的结果,如果我需要发布android,我会发布

Exception in thread "LWJGL Application" com.badlogic.gdx.utils.GdxRuntimeException: java.lang.NullPointerException
at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:113)
Caused by: java.lang.NullPointerException
at com.me.RE4.view.WorldRenderer.render(WorldRenderer.java:142)
at com.me.RE4.screens.GameScreen.render(GameScreen.java:151)
at com.badlogic.gdx.Game.render(Game.java:46)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:191)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:110)
编辑 所以我发现我没有实例化GameScreen,当我这么做的时候,它说WorldController是空的。所以我在WorldRenderer中实例化了WorldController,但是它说GameScreen中的TouchpadY()方法为null,设置断点,这就给了我所有类型的变量为null


好的,我最初尝试在WorldRenderer中,在渲染方法中进行旋转,以便在某个点保持触摸板稳定将保持旋转在该角度。我必须在WR中实例化/引用很多项才能工作,所以我最终在WR中安装gamescreen,然后引用我想在GS中旋转的精灵,然后触摸板值在GS的渲染方法中工作。太邋遢了

1。请正确格式化您的代码。你能很容易地读懂吗?2.请发布异常的logcat堆栈跟踪。3.如果你的问题真的是“在渲染方法中使用sprite旋转而不崩溃”,答案是“修复你的bug”。很抱歉,我在手机上发布了它,也许现在它是可读的。如果这是导致NPE的原因,那么请检查“LeonaiArmsSpriter”和“gs”的值,因为其中一个值必须为空。对不起,我有点糊涂。有人问我是否实例化了你提到的2个项目,但我不知道如何实例化,因为gs是一个gamescreen类,我想声明它会起作用,我正在drawLeon()方法中通过spriteBatch创建sprite。