我有一个 GameScreen 类,里面有一个触摸板。我在 GameScreen 类中有一个方法 (setTouchpadY()) 可以获取触摸板的 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/console,这是尝试运行桌面版本,如果我需要发布 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() 方法为空,设置断点,这给了我各种变量为空。