2017-07-03 13 views
0

非常に基本的なJavaの質問だと思います。私は2つのクラスを持っています:メインと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クラスからcamの位置を設定したいだけです。どのようにこれを行うことができますか? "A"を押すと、 "Nullpointer exception"が表示されます。いずれの例:(

+0

あなたは 'Main'クラスを含めることができますか?私はあなたの問題がlibgdxではなくJavaの問題であることはほとんど確信していますが、確認するためには 'Main'を確認する必要があります – Chris

+0

https://pastebin.com/uZ3QaBER – Subscriptor

答えて

0
Main main = new Main(); 
をあなたは、アプリケーションが最初に作成されたときに呼び出さ ApplicationListenerのライフサイクル方法、である create()メソッド内でカメラを初期化しているので、あなたのコードによると Mainクラスの camがnullである

..

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

wowowowowow thanks it works – Subscriptor

0

カムどちらかがnullで、または位置がnullを見つけることができません。今までそれがnullではないように/設定初期化する必要がありますnullの

を。

0

私はApplicationAdapterのドキュメントを見て、それが正しく使用されていることを確認します。

この特定の問題では、create()オーバーロードが必要なカムと位置の初期化を提供するように見えます。オブジェクトを初期化した直後、またはコンストラクタ内で呼び出すことができます。

関連する問題