2017-07-03 64 views
0

我認爲這是非常基本的Java問題。我有兩個類:Main和InputManager類:libgdx如何設置相機從另一個非主類的位置? [Java]

public class InputManager implements InputProcessor { 
    Main main = new Main(); 
    @Override 
    public boolean keyDown(int keycode) { 
     switch (keycode) { 
      case Keys.A: 
       System.out.println(main.cam.position.set(1, 0, 0)); 
       break; 
     } 
     return false; 
    } // etc... 

主類有公共OrthographicCamera凸輪;字段,我只想從InputManager類設置凸輪的位置。如何做到這一點?按「A」會顯示「Nullpointer異常」。找不到任何的例子:(

+0

你可以包括你的班級'主'嗎?我幾乎可以肯定你的問題是一個Java問題不是libgdx,但我需要看到'Main'才能確認 – Chris

+0

https://pastebin.com/uZ3QaBER – Subscriptor

回答

0
Main main = new Main(); 

根據您的代碼Maincam爲null,因爲你在裏面初始化方法create()這是ApplicationListener,第一次創建應用程序時調用生命週期方法的相機..

研究所ead構建新的Object使用已經由此創建:

Main main= (Main)Gdx.app.getApplicationListener(); 
+1

wowowowowow謝謝你的工作 – Subscriptor

0

要麼凸輪是零和或位置是空的。

而且,任何爲空將需要設置/初始化,使其不爲空。

0

我會看看ApplicationAdapter的文檔,並確保您正確使用它。

對於這個特定的問題,它看起來像create()重載將提供所需的凸輪和位置的初始化。你可以在初始化對象之後或在構造函數中調用它。

相關問題