不愧是清华大佬,一个联机对战游戏就把 23 种设计模式给抽丝剥茧了
坦克大战项目
坦克大战项目通过一个联机对战游戏的手把手,一行一行的开发过程,让你精准的理解和运用 JavaSE,DesignPatterns , TCP/IP, 多线程, NIO 等基础知识。真正理解项目的开发过程,并体会项目开发的难点和痛点。 请记住,只有做项目,才是对所学的真正检验。
坦克大战项目目录
new 出一个窗口
设定标题栏内容
TankFrame 从 Frame 继承+显示
认识 paint 方法重写
学习 graphics 类画图
学习 repaint 方法
实现 MyKeyListener 对键盘作出响应
MyKeyListener 从 KeyAdapter 继承
取得具体按键信息
根据具体按键调整坦克位置持有对方引用
抽象出坦克类学习使用枚举类型记录键盘状态
把监听处理类 MyKeyListener 放到 TankFrame 内部
用匿名内部类处理窗口关闭
根据按键状态改变坦克方向
根据坦克方向移动位置
能停能动
test 包关于 classloader 的知识
将坦克换成图片版
画出一颗子弹让子弹飞- -会儿
按下 ctrl 键主战坦克打出一发炮弹
打出多发子弹
子弹从坦克中心位置打出
子弹消亡(飞出游戏区)
定义 rectangle 属性不用每次都 new
炮弹 new 出来自动加入容器死掉后自动去除
分离玩家和机器人对边界进行不同的处理
用双缓冲消除闪烁
加一堆敌人坦克
做碰撞检测
显示爆炸
加入声音
让敌人坦克更加智能
对坦克和子弹加入 Group 属性,
不同的 Group 可以互相撞击
测试 Properties 类的使用
建立 PropertyMgr 类
MV 分开 Model View 分离
GameModel 改成单例模式
对于碰撞的处理
Class. forName().newInstance()
抽象出游戏物体的父类
把 GameModel 中的各种不同物体的 List 合成为一个
List <GameObject>
完善责任链模式
加入墙
按键切换发射策略
实现暂停功能
实现存盘功能
使用 Junit 测试服务器 loop
去掉敌人的坦克(机器控制的坦克)
处理接收到的消息
player 新的构造方法
让后来人能看到先加入者
加入坦克方向改变的消息
重构代码
收到改变坦克方向消息时让 player 的 moving 为 true
发送主战坦克停止的消息
发送主战坦克开始移动的消息(方向没变)
加入子弹和 Player 的撞击逻辑
把主战坦克也加入到 List 中
完成网络版
坦克大战项目——架构视频
凭截图即可免费领取设计模式、坦克大战学习资料
坦克大战项目教程笔记
凭截图即可免费领取设计模式、坦克大战学习资料
抽丝剥茧设计模式
在这些模式中,我并没有止步于理论讲解(那其实非常简单),而是坚持用代码说话,用实际能用的上的代码说话。
比如在工厂模式中,我直接讲到 SpringIOC 原理。
比如在动态代理模式和 Visitor 模式中,我直接讲到 ASM。
.........
创建型
1. Factory Method(工厂方法)
2. Abstract Factory(抽象工厂)
3. Builder(建造者)
4. Prototype(原型)
5. Singleton(单例)
结构型
6. Adapter Class/Object(适配器)
7. Bridge(桥接)
8. Composite(组合)
9. Decorator(装饰)
10. Facade(外观)
11. Flyweight(享元)
12. Proxy(代理)
行为型
13. Interpreter(解释器)
14. Template Method(模板方法)
15. Chain of Responsibility(责任链)
16. Command(命令)
17. Iterator(迭代器)
18. Mediator(中介者)
19. Memento(备忘录)
20. Observer(观察者)
21. State(状态)
22. Strategy(策略)
23. Visitor(访问者)
23 种设计模式笔记文档
23 种设计模式视频
凭截图即可免费领取设计模式、坦克大战学习资料
从上面可以很清晰的看到坦克大战和 23 种设计模式的文档与视频,小编都为大家准备好了,如果大家伙需要的话,可以 点击此处 凭截图即可免费领取设计模式、坦克大战学习资料
评论