0

我有一个 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() 方法为空,设置断点,这给了我各种变量为空。

在此处输入图像描述

4

1 回答 1

0

好吧,我最初试图在 WorldRenderer 中的 render 方法中进行旋转,以便将触摸板稳定地保持在某个点将保持旋转到那个程度。我必须在 WR 中实例化/引用很多项目才能工作,所以我最终在 WR 中创建了游戏屏幕,然后引用了我想在 GS 中旋转的精灵,然后触摸板值在渲染方法中工作GS。太邋遢

于 2013-02-04T18:05:32.023 回答