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