问题描述
短版:请联系我的libgdx游戏的orginized代码的Box2D或只是告诉我一下班何去何从成员
长版:我有一个带有GameStage对象的GameScreen。 但是,在开发游戏时,我看到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:这是我的课程结构: :
1楼
我也正在制作Box2D游戏,而组织是我的一个大问题。 在游戏中,您需要管理很多事情。 摄影机,游戏逻辑,移动实体等。为了使所有这些协同工作,我开始使用所谓的处理程序。 这些处理程序将处理游戏的特定方面。 这使我可以使相机代码远离Box2D代码。
对于我现在正在从事的项目,我的“ Universe”类中有五个处理程序:
public WorldHandler world_handler;
public MapCameraHandler map_camera_handler;
public EntityHandler entity_handler;
public LevelHandler level_handler;
public WaveHandler wave_handler;
当我初始化它们时,我将对该Universe类的引用传递给它们的构造函数,以便处理程序可以相互通信。 然后,在更新步骤中,我分别调用每个处理程序的更新。
public void update(float delta)
{
world_handler.update(delta);
entity_handler.update(delta);
map_camera_handler.setCameraBounds();
wave_handler.update();
}
我对draw方法也一样。
public void draw()
{
map_camera_handler.map_renderer.setView(map_camera_handler);
map_camera_handler.map_renderer.render();
entity_handler.draw();
}