游戏效果图
-
参数设置
-
场景一
-
场景二
工具+环境
IDEA+gradle+jdk1.8
设计模式
UML架构图
源码地址
说明
本次坦克大战游戏使用了建造者模式,对于tank类来说这是一个复杂的类对象,采用建造者模式将复杂的tank类进行划分,划分出来的子部件各自负责各自相应的功能互不干扰,这样就减少了耦合,tank分为TankFrame、PT、Engine、Explode、Missile、Guard。Tank类由上面几个部件构成。另外还有Wall、Skill、Direction_。EnemyBuilder、TankBuilder、WallBuilder是建造者类。EnemyBUilder和TankBuilder继承了TankDecorator类。Projector实现场景规划,Customize和Windows是界面展示。
类 | 功能 |
---|---|
TankFrame | 控制坦克的颜色、高度和宽度 |
PT | 这是坦克的炮筒,负责控制坦克发射子弹的方向 |
Engine | 坦克的发动机,负责控制坦克的位置,其中由move方法根据键盘控制坦克移动,moveE()方法根据场地环境随机移动。 |
Missile | 炮弹类依赖于Tank类、Wall类,通过move方法来控制子弹移动 |
Guard | 坦克的护甲,属性life值表示坦克的血量当life小于等于0时坦克死亡。 |
Wall | 墙体,控制墙的位置、高、宽和颜色。 |
Skill | 技能类,依赖于Tank类,可以向八个方向发射子弹。 |
Direction_ | 方向类,其中仅含有一个枚举类型的属性 |
TankDecrator | 这是抽象的坦克建造者,关联了Tank和EnemyTank类 |
TankBuilder | 继承了TankDecrator,用于构造我方坦克 |
EnemyTankBuilder | 继承了TankDecrator,用于建造敌方坦克 |
WallBuilder | 含有很多Wall实例对象作为其实例,用于构建场景中需要的墙体 |
Projector | 聚合和多个建造者实例用于控制场景构建 |
Customize | 用户关卡设置界面 |
Windows | 游戏界面 |