2016-11-10 14 views
1

我正在做一個小型遊戲,我試圖儘可能保持整潔。我已經把輸入處理器分成了另一個類,它工作正常。我還設置了一個playState類,它爲Box2D處理和創建物體和燈具。Libgdx:如何從另一個輸入處理類訪問/修改Box2D World?

在我的輸入處理類:

public class TouchProcessor implements InputProcessor { 

    //..... 

    @Override 
     public boolean touchDragged(int screenX, int screenY, int pointer) { 
      System.out.println("Dragging..."); 
      touchHappening = true; 

      return true; 
     } 

    // .... 

現在的觸摸拖動,我想從Box2D的世界重新定位身體/攝像頭。但是如果我將它與PlayState分開,我無法訪問處理器類中的那些。我如何去做這件事?

回答

1

每當你解耦你的應用程序部件(這是一個好主意btw),你需要一個策略如何不同部分可以一起工作。

在野外常見的一種解決方案是使用某種中央單體來使其他代碼可以訪問重要的遊戲方法。但是單身人士有他們自己的flaws。另一種方法是在這裏使用某種事件系統。

你可能想看看這些decoupling patterns以獲得關於良好遊戲架構的一些想法。