我们都知道Libgdx只是一个2D游戏框架,并不是游戏引擎,著名的AndEngine 2D游戏引擎就是基于Libgdx开发的,并且Flappy Bird原版就是使用AndEngine引擎开发的。所以我们必须先创建自己游戏引擎。
创建UML类图
首先我们需要分析Flappy Bird的项目架构。我们使用类图帮助我们可视化项目结构并理解项目构成。下面是该类图:
上图中FlappyBirdMain是项目主类,并且必须继承于LibGDX的ApplicationListener接口。主类包含了一个Assets类引用,Assets类被用于访问和组织游戏资源。主类还包含了WorldController和WorldRenderer两个类的句柄。
WorldController类包含了应用的初始化和所有游戏逻辑。它管理所有游戏对象并控制他们的行为。
WorldRenderer类被用于渲染每个游戏对象和需要的GUI信息。
倒数第二行的三个类继承于AbstractGameObject抽象类。他们共用一组接口,公共接口对所有游戏对象具有相同的操作功能,并能将对象渲染到场景。
下面是Flappy Bird的三个游戏对象:
- Bird:玩家控制的角色
- Pipe:我们看到的绿色管道。
- Land: