当前位置:首页 > 工业技术
设计模式与游戏完美开发
设计模式与游戏完美开发

设计模式与游戏完美开发PDF电子书下载

工业技术

  • 电子书积分:15 积分如何计算积分?
  • 作 者:蔡升达著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2017
  • ISBN:9787302455982
  • 页数:477 页
图书介绍:
上一篇:认知计算与大数据分析下一篇:电路
《设计模式与游戏完美开发》目录

第1篇 设计模式与游戏设计 2

第1章 游戏实现中的设计模式 2

1.1 设计模式的起源 2

1.2 软件的设计模式是什么? 3

1.3 面向对象设计中常见的设计原则 4

1.4 为什么要学习设计模式 7

1.5 游戏程序设计与设计模式 8

1.6 模式的应用与学习方式 10

1.7 结论 11

第2章 游戏范例说明 12

2.1 游戏范例 12

2.2 GoF的设计模式范例 15

第2篇 基础系统 20

第3章 游戏场景的转换——状态模式(State) 20

3.1 游戏场景 20

3.1.1 场景的转换 20

3.1.2 游戏场景可能的实现方式 23

3.2 状态模式(State) 24

3.2.1 状态模式(State)的定义 24

3.2.2 状态模式(State)的说明 25

3.2.3 状态模式(State)的实现范例 25

3.3 使用状态模式(State)实现游戏场景的转换 28

3.3.1 SceneState的实现 28

3.3.2 实现说明 29

3.3.3 使用状态模式(State)的优点 35

3.3.4 游戏执行流程及场景转换说明 36

3.4 状态模式(State)面对变化时 37

3.5 结论 37

第4章 游戏主要类——外观模式(Facade) 39

4.1 游戏子功能的整合 39

4.2 外观模式(Facade) 41

4.2.1 外观模式(Facade)的定义 41

4.2.2 外观模式(Facade)的说明 42

4.2.3 外观模式(Facade)的实现说明 43

4.3 使用外观模式(Facade)实现游戏主程序 44

4.3.1 游戏主程序架构设计 44

4.3.2 实现说明 45

4.3.3 使用外观模式(Facade)的优点 47

4.3.4 实现外观模式(Facade)时的注意事项 48

4.4 外观模式(Facade)面对变化时 48

4.5 结论 48

第5章 获取游戏服务的唯一对象——单例模式(Singleton) 50

5.1 游戏实现中的唯一对象 50

5.2 单例模式(Singleton) 51

5.2.1 单例模式(Singleton)的定义 51

5.2.2 单例模式(Singleton)的说明 51

5.2.3 单例模式(Singleton)的实现范例 52

5.3 使用单例模式(Singleton)获取唯一的游戏服务对象 53

5.3.1 游戏服务类的单例模式实现 53

5.3.2 实现说明 54

5.3.3 使用单例模式(Singleton)后的比较 55

5.3.4 反对使用单例模式(Singleton)的原因 55

5.4 少用单例模式(Singleton)时如何方便地引用到单一对象 58

5.5 结论 63

第6章 游戏内各系统的整合——中介者模式(Mediator) 64

6.1 游戏系统之间的沟通 64

6.2 中介者模式(Mediator) 68

6.2.1 中介者模式(Mediator)的定义 69

6.2.2 中介者模式(Mediator)的说明 69

6.2.3 中介者模式(Mediator)的实现范例 69

6.3 中介者模式(Mediator)作为系统之间的沟通接口 72

6.3.1 使用中介者模式(Mediator)的系统架构 73

6.3.2 实现说明 73

6.3.3 使用中介者模式(Mediator)的优点 79

6.3.4 实现中介者模式(Mediator)时的注意事项 79

6.4 中介者模式(Mediator)面对变化时 80

6.5 结论 80

第7章 游戏的主循环——Game Loop 82

7.1 GameLoop由此开始 82

7.2 怎么实现游戏循环(Game Loop) 84

7.3 在Unity3D中实现游戏循环 85

7.4 P级阵地的游戏循环 89

7.5 结论 92

第3篇 角色的设计 94

第8章 角色系统的设计分析 94

8.1 游戏角色的架构 94

8.2 角色类的规划 95

第9章 角色与武器的实现——桥接模式(Bridge) 98

9.1 角色与武器的关系 98

9.2 桥接模式(Bridge) 103

9.2.1 桥接模式(Bridge)的定义 103

9.2.2 桥接模式(Bridge)的说明 107

9.2.3 桥接模式(Bridge)的实现范例 108

9.3 使用桥接模式(Bridge)实现角色与武器接口 110

9.3.1 角色与武器接口设计 110

9.3.2 实现说明 111

9.3.3 使用桥接模式(Bridge)的优点 116

9.3.4 实现桥接模式(Bridge)的注意事项 116

9.4 桥接模式(Bridge)面对变化时 116

9.5 结论 117

第10章 角色属性的计算——策略模式(Strategy) 118

10.1 角色属性的计算需求 118

10.2 策略模式(Strategy) 121

10.2.1 策略模式(Strategy)的定义 122

10.2.2 策略模式(Strategy)的说明 122

10.2.3 策略模式(Strategy)的实现范例 123

10.3 使用策略模式(Strategy)实现攻击计算 124

10.3.1 攻击流程的实现 125

10.3.2 实现说明 125

103.3 使用策略模式(Strategy)的优点 132

10.3.4 实现策略模式(Strategy)时的注意事项 133

10.4 策略模式(Strategy)面对变化时 134

10.5 结论 135

第11章 攻击特效与击中反应——模板方法模式(Template Method) 137

11.1 武器的攻击流程 137

11.2 模板方法模式(Template Method) 139

11.2.1 模板方法模式(Template Method)的定义 139

11.2.2 模板方法模式(Template Method)的说明 141

11.2.3 模板方法模式(Template Method)的实现范例 141

11.3 使用模板方法模式实现攻击与击中流程 142

11.3.1 攻击与击中流程的实现 143

11.3.2 实现说明 143

11.3.3 运用模板方法模式(Template Method)的优点 145

11.3.4 修改击中流程的实现 145

11.4 模板方法模式(Template Method)面对变化时 147

11.5 结论 149

第12章 角色AI——状态模式(State) 150

12.1 角色的AI 150

12.2 状态模式(State) 158

12.3 使用状态模式(State)实现角色AI 159

12.3.1 角色AI的实现 159

12.3.2 实现说明 160

12.3.3 使用状态模式(State)的优点 169

12.3.4 角色AI执行流程 169

12.4 状态模式(State)面对变化时 170

12.5 结论 172

第13章 角色系统 174

13.1 角色类 174

13.2 游戏角色管理系统 176

第4篇 角色的产生 183

第14章 游戏角色的产生——工厂方法模式(Factory Method) 183

14.1 产生角色 183

14.2 工厂方法模式(Factory Method) 188

14.2.1 工厂方法模式(Factory Method)的定义 188

14.2.2 工厂方法模式(Factory Method)的说明 189

14.2.3 工厂方法模式(Factory Method)的实现范例 189

14.3 使用工厂方法模式(Factory Method)产生角色对象 195

14.3.1 角色工厂类 195

14.3.2 实现说明 196

14.3.3 使用工厂方法模式(Factory Method)的优点 199

14.3.4 工厂方法模式(Factory Method)的实现说明 199

14.4 工厂方法模式(Factory Method)面对变化时 203

14.5 结论 205

第15章 角色的组装——建造者模式(Builder) 206

15.1 角色功能的组装 206

15.2 建造者模式(Builder) 213

15.2.1 建造者模式(Builder)的定义 213

15.2.2 建造者模式(Builder)的说明 214

15.2.3 建造者模式(Builder)的实现范例 215

15.3 使用建造者模式(Builder)组装角色的各项功能 217

15.3.1 角色功能的组装 218

15.3.2 实现说明 219

15.3.3 使用建造者模式(Builder)的优点 226

15.3.4 角色建造者的执行流程 226

15.4 建造者模式(Builder)面对变化时 227

15.5 结论 228

第16章 游戏属性管理功能——享元模式(Flyweight) 229

16.1 游戏属性的管理 229

16.2 享元模式(Flyweight) 236

16.2.1 享元模式(Flyweight)的定义 236

16.2.2 享元模式(Flyweight)的说明 237

16.2.3 享元模式(Flyweight)的实现范例 238

16.3 使用享元模式(Flyweight)实现游戏 242

16.3.1 SceneState的实现 242

16.3.2 实现说明 245

16.3.3 使用享元模式(Flyweight)的优点 250

16.3.4 享元模式(Flyweight)的实现说明 250

16.4 享元模式(Flyweight)面对变化时 252

16.5 结念 252

第5篇 战争开始 254

第17章 Unity3D的界面设计——组合模式(Composite) 254

17.1 玩家界面设计 254

17.2 组合模式(Composite) 259

17.2.1 组合模式(Composite)的定义 259

17.2.2 组合模式(Composite)的说明 260

17.2.3 组合模式(Composite)的实现范例 261

17.2.4 分了两个子类但是要使用同一个操作界面 264

17.3 Unity3D游戏对象的分层式管理功能 265

17.3.1 游戏对象的分层管理 265

17.3.2 正确有效地获取UI的游戏对象 266

17.3.3 游戏用户界面的实现 267

17.3.4 兵营界面的实现 269

17.4 结论 274

第18章 兵营系统及兵营信息显示 276

18.1 兵营系统 276

18.2 兵营系统的组成 277

18.3 初始兵营系统 281

18.4 兵营信息的显示流程 287

第19章 兵营训练单位——命令模式(Command) 288

19.1 兵营界面上的命令 288

19.2 命令模式(Command) 291

19.2.1 命令模式(Command)的定义 291

19.2.2 命令模式(Command)的说明 294

19.2.3 命令模式(Command)的实现范例 294

19.3 使用命令模式(Command)实现兵营训练角色 297

19.3.1 训练命令的实现 297

19.3.2 实现说明 298

19.3.3 执行流程 302

19.3.4 实现命令模式(Command)时的注意事项 303

19.4 命令模式(Command)面对变化时 305

19.5 结论 306

第20章 关卡设计——责任链模式(Chain of Responsibility) 307

20.1 关卡设计 307

20.2 责任链模式(Chain ofResponsibility) 312

20.2.1 责任链模式(Chain ofResponsibility)的定义 312

20.2.2 责任链模式(Chain ofResponsibility)的说明 314

20.2.3 责任链模式(Chain ofResponsibility)的实现范例 314

20.3 使用责任链模式(Chain ofResponsibility)实现关卡系统 317

20.3.1 关卡系统的设计 317

20.3.2 实现说明 318

20.3.3 使用责任链模式(Chain ofResponsibility)的优点 329

20.3.4 实现责任链模式(Chain ofResponsibility)时的注意事项 329

20.4 责任链模式(Chain ofResponsibility)面对变化时 330

20.5 结论 332

第6篇 辅助系统 334

第21章 成就系统——观察者模式(Observer) 334

21.1 成就系统 334

21.2 观察者模式(Observer) 338

21.2.1 观察者模式(Observer)的定义 338

21.2.2 观察者模式(Observer)的说明 340

21.2.3 观察者模式(Observer)的实现范例 341

21.3 使用观察者模式(Observer)实现成就系统 344

21.3.1 成就系统的新架构 344

21.3.2 实现说明 346

21.3.3 使用观察者模式(Observer)的优点 358

21.3.4 实现观察者模式(Observer)时的注意事项 358

21.4 观察者模式(Observer)面对变化时 359

21.5 结论 361

第22章 存盘功能——备忘录模式(Memento) 362

22.1 存储成就记录 362

22.2 备忘录模式(Memento) 366

22.2.1 备忘录模式(Memento)的定义 366

22.2.2 备忘录模式(Memento)的说明 367

22.2.3 备忘录模式(Memento)的实现范例 367

22.3 使用备忘录模式(Memento)实现成就记录的保存 371

22.3.1 成就记录保存的功能设计 371

22.3.2 实现说明 371

22.3.3 使用备忘录模式(Memento)的优点 374

22.3.4 实现备忘录模式(Memento)的注意事项 374

22.4 备忘录模式(Memento)面对变化时 374

22.5 结论 375

第23章 角色信息查询——访问者模式(Visitor) 376

23.1 角色信息的提供 376

23.2 访问者模式(Visitor) 385

23.2.1 访问者模式(Visitor)的定义 386

23.2.2 访问者模式(Visitor)的说明 390

23.2.3 访问者模式(Visitor)的实现范例 392

23.3 使用访问者模式(Visitor)实现角色信息查询 397

23.3.1 角色信息查询的实现设计 397

23.3.2 实现说明 398

23.3.3 使用访问者模式(Visitor)的优点 405

23.3.4 实现访问者模式(Visitor)时的注意事项 405

23.4 访问者模式(Visitor)面对变化时 405

23.5 结论 408

第7篇 调整与优化 410

第24章 前缀字尾——装饰模式(Decorator) 410

24.1 前缀后缀系统 410

24.2 装饰模式(Decorator) 415

24.2.1 装饰模式(Decorator)的定义 415

24.2.2 装饰模式(Decorator)的说明 418

24.2.3 装饰模式(Decorator)的实现范例 419

24.3 使用装饰模式(Decorator)实现前缀后缀的功能 422

24.3.1 前缀后缀功能的架构设计 423

24.3.2 实现说明 423

24.3.3 使用装饰模式(Decorator)的优点 433

24.3.4 实现装饰模式(Decorator)时的注意事项 433

24.4 装饰模式(Decorator)面对变化时 434

24.5 结论 435

第25章 俘兵——适配器模式(Adapter) 436

25.1 游戏的宠物系统 436

25.2 适配器模式(Adapter) 440

25.2.1 适配器模式(Adapter)的定义 440

25.2.2 适配器模式(Adapter)的说明 441

25.2.3 适配器模式(Adapter)的实现范例 441

25.3 使用适配器模式(Adapter)实现俘兵系统 443

25.3.1 俘兵系统的架构设计 443

25.3.2 实现说明 443

25.3.3 与俘兵相关的新增部分 445

25.3.4 使用适配器模式(Adapter)的优点 450

25.4 适配器模式(Adapter)面对变化时 450

25.5 结论 451

第26章 加载速度的优化——代理模式(Proxy) 453

26.1 最后的系统优化 453

26.2 代理模式(Proxy) 457

26.2.1 代理模式(Proxy)的定义 458

26.2.2 代理模式(Proxy)的说明 458

26.2.3 代理模式(Proxy)的实现范例 459

26.3 使用代理模式(Proxy)测试和优化加载速度 460

26.3.1 优化加载速度的架构设计 460

26.3.2 实现说明 461

26.3.3 使用代理模式(Proxy)的优点 464

26.3.4 实现代理模式(Proxy)时的注意事项 464

26.4 代理模式(Prory)面对变化时 466

26.5 结论 466

第8篇 未明确使用的模式 468

第27章 迭代器模式(Iterator)、原型模式(Prototype)和解释器模式(Interpreter) 468

27.1 迭代器模式(Iterator) 468

27.2 原型模式(Prototype) 469

27.3 解释器模式(Interpreter) 471

第28章 抽象工厂模式(Abstract Factory) 472

28.1 抽象工厂模式(Abstract Factory)的定义 472

28.2 抽象工厂模式(Abstract Factory)的实现 473

28.3 可应用抽象工厂模式的场合 476

参考文献 477

返回顶部