2016-11-10 1 views
1

Je travaille sur un petit jeu et j'essaie de garder les choses aussi soignées que possible. J'ai divisé le processeur d'entrée en une autre classe et cela fonctionne très bien. J'ai aussi installé une classe playState qui gère et crée des corps et des appareils pour Box2D.Libgdx: Comment accéder/modifier Box2D World à partir d'une autre classe de traitement d'entrée?

Et dans mon traitement d'entrée classe:

public class TouchProcessor implements InputProcessor { 

    //..... 

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

      return true; 
     } 

    // .... 

Passons maintenant glisser tactile, je veux repositionner un corps/caméra du monde Box2D. Mais je n'ai pas accès à ceux de ma classe Processor si je le sépare de playState. Comment je vais à ce sujet?

Répondre

1

Chaque fois que vous déconnectez vos pièces d'application (ce qui est une bonne idée), vous avez besoin d'une stratégie pour que les différentes pièces puissent fonctionner ensemble.

Une solution souvent vue dans la nature est d'utiliser une sorte de singleton central pour rendre les méthodes de jeu importantes accessibles à partir d'autres codes. Mais les singletons ont leurs propres flaws. Une autre façon serait d'utiliser une sorte de système d'événements ici.

Vous voudrez peut-être jeter un oeil à ces decoupling patterns pour avoir des idées sur une bonne architecture de jeu.