LibGDX, Screen 和 Stage 中的代码应该如何组织?

LibGDX, How should I organize code inside Screen and Stage?

简短版:请 link 给我一个 libgdx 游戏的组织代码 box2d 或者告诉我哪些成员进入了什么 classes

长版本:我有一个 GameScreen,里面有 GameStage 对象。然而,当我开发我的游戏时,我看到 GameStage 有很多代码,而 GameScreen 几乎是空的。 最初我将相机和视口放在 GameScreen 中,但仅此而已。

private Jumper              game;
private GameStage           stage;
private OrthographicCamera  camera;
private FitViewport         viewport;

以下是我的 GameStage 中的成员:

public  World               world;
private Ground              ground;
private Player              player;
private float               accumulator = 0f;
private Vector3             touch = new Vector3();
private Rectangle           rightSide;
private Rectangle           leftSide;
private Queue<Platform>     platforms;
private int                 score;
private OrthographicCamera  camera;
private Box2DDebugRenderer  debugRenderer;
private FitViewport         viewport;

这对我 atm 来说还不错,但是我只是在构建原型,还有很多机制要添加,我相信它最终会像我之前的游戏一样(50+成员),而且代码太多,我每次都会迷失其中

一个游戏有这么多代码正常吗?或者有什么办法可以优化吗?

PS:这是我的 class 结构:http://i.stack.imgur.com/8uYgA.png

我也在制作 Box2D 游戏,组织是我最关心的问题。在游戏中,您需要管理很多事情。摄像机、游戏逻辑、移动实体等。为了让它们一起工作,我已经开始使用我称之为处理程序的东西。这些处理程序将处理游戏的特定方面。这让我可以让相机代码远离 Box2D 代码。

对于我现在正在进行的项目,我的 "Universe" class:

中有五个处理程序
public WorldHandler world_handler;
public MapCameraHandler map_camera_handler;
public EntityHandler entity_handler;
public LevelHandler level_handler;
public WaveHandler wave_handler;

当我初始化它们中的每一个时,我将对此 Universe class 的引用传递给它们的构造函数,以便处理程序可以相互通信。然后,在我的更新步骤中,我分别调用每个处理程序的更新。

public void update(float delta)
{
    world_handler.update(delta);
    entity_handler.update(delta);
    map_camera_handler.setCameraBounds();
    wave_handler.update();
}

绘制方法我也是这样做的

public void draw()
{
    map_camera_handler.map_renderer.setView(map_camera_handler);
    map_camera_handler.map_renderer.render();       
    entity_handler.draw();
}