基于建造者模式编写的坦克大战游戏

游戏效果图

  1. 参数设置
    基于建造者模式编写的坦克大战游戏_第1张图片

  2. 场景一
    基于建造者模式编写的坦克大战游戏_第2张图片

  3. 场景二
    基于建造者模式编写的坦克大战游戏_第3张图片

工具+环境

IDEA+gradle+jdk1.8

设计模式

建造者模式

UML架构图

基于建造者模式编写的坦克大战游戏_第4张图片

源码地址

码云-Tank_ReBuild

说明

本次坦克大战游戏使用了建造者模式,对于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 游戏界面

在编写游戏时参考了下面这位博主的分享

HelloWorld_EE

你可能感兴趣的:(坦克大战)