计算机游戏程序设计(基础篇)(第3版)
第1章 游戏开发简介 001
1.1 什么是游戏 001
1.2 计算机游戏的发展 003
1.3 计算机游戏的分类 006
1.4 计算机游戏开发的基本理念和
方法 011
1.5 游戏开发的基本流程 012
1.6 游戏开发的准则和“忠告” 014
1.7 游戏编程人员的基本素质
要求 016
小结 017
习题1 017
第2章 计算机游戏策划简介 018
2.1 计算机游戏策划的概念和
分类 018
2.2 计算机游戏策划人员应具备的
素质 019
2.3 计算机游戏策划基础 020
2.3.1 游戏规则 020
2.3.2 奖罚机制 021
2.3.3 游戏资源 021
2.3.4 玩家技能 023
2.3.5 反馈机制 025
2.3.6 难度平衡 026
2.4 计算机游戏的策划与开发
团队 028
小结 030
习题2 030
第3章 游戏图像处理 031
3.1 图像概述 031
3.2 颜色混合和半透明效果 035
3.2.1 基本原理和步骤 035
3.2.2 Alpha融合技术 036
3.3 图像操作 038
3.3.1 直方图 038
3.3.2 几何运算 039
3.3.3 图像滤波算子 040
3.3.4 形态算子 042
3.4 图像特效 044
小结 046
习题3 046
第4章 游戏引擎概览 047
4.1 游戏引擎的提出 047
4.2 常用游戏引擎 048
4.3 Cocos2d-x引擎介绍 052
4.3.1 Cocos2d-x的核心概念 052
4.3.2 Cocos2d-x中的坐标系 056
4.3.3 Cocos2d-x中的用户交互响应 057
4.3.4 Cocos2d-x的内存管理机制 058
4.3.5 Cocos2d-x中的新增的3D特性 060
4.4 Cocos2d-x开发环境配置 060
4.4.1 Windows下开发环境配置 060
4.4.2 Android开发环境配置 062
4.4.3 iOS下的开发环境配置 066
小结 066
习题4 067
第5章 二维游戏场景绘制 068
5.1 游戏场景的组织和管理 068
5.2 游戏画面背景 069
5.2.1 二维游戏背景的类型 069
5.2.2 游戏地图的创建和显示 070
5.2.3 砖块地图 073
5.2.4 砖块地图编辑器 074
5.2.5 Cocos2d-x中砖块地图的实现 076
5.3 文字与字体 078
5.3.1 字体编辑器 078
5.3.2 Cocos2d-x中的文本绘制 079
5.4 菜单项 082
5.5 扩展控件 086
5.5.1 滚动框 086
5.5.2 滑动条控件 090
5.5.3 开关控件 091
5.5.4 按钮控件 091
5.5.5 Scale9Sprite 092
5.6 游戏场景绘制实例――英雄
快跑 093
小结 099
习题和实验 099
第6章 游戏交互界面设计 100
6.1 交互界面设计概述 100
6.2 游戏的可玩性与交互界面 100
6.3 交互界面设计基础 101
6.3.1 交互界面的色彩设计 101
6.3.2 交互界面的形式 102
6.4 游戏软件的交互界面设计 107
6.5 Cocos2d-x中的界面设计 108
6.5.1 Cocos2d-x中的UI编辑器 108
6.5.2 用户界面编辑器的使用 108
6.5.3 在Cocos2d-x引擎中的应用 110
6.6 Cocos2d-x中的用户交互 111
6.7 游戏界面设计实例――贪
食豆 113
小结 117
习题和实验 117
第7章 二维游戏动画合成 118
7.1 计算机动画概述 118
7.2 常见计算机动画技术 118
7.2.1 基本动画技术 118
7.2.2 脚本驱动的动画技术 119
7.2.3 骨骼动画技术 120
7.2.4 常见动画制作软件及其文件
格式 120
7.3 Cocos2d-x中的动作类 121
7.3.1 瞬时动作(ActionInstant) 121
7.3.2 延时动作(ActionInterval) 122
7.3.3 组合动作
(ActionAcombination) 123
7.3.4 速度的指定(speed) 124
7.3.5 跟随动作(follow) 124
7.4 Cocos2d-x中的动画 125
7.4.1 Cocos2d-x中与动画相关的类 125
7.4.2 Cocos2d-x中的动画编辑器 125
7.4.3 Cocos2d-x中动画的实现 127
7.5 游戏动画实例――侠客行 128
小结 139
习题和实验 139
第8章 碰撞检测和运动模拟 140
8.1 碰撞检测 140
8.2 物体遮挡关系 141
8.3 物体运动模拟 141
8.4 Cocos2d-x中的物理引擎 142
8.4.1 Box2D简介 142
8.4.2 Box2D中的相关类 143
8.4.3 Box2D的使用 149
8.5 游戏物理模拟实例 150
8.5.1 基于Box2D的游戏实例 150
8.5.2 Cocos2d-x的物理引擎Physics的
应用 158
小结 159
习题和实验 160
第9章 游戏粒子系统 161
9.1 粒子系统概述 161
9.2 粒子效果 161
9.3 Cocos2d-x中的粒子系统 162
9.4 粒子的生命周期 163
9.5 粒子属性 164
9.6 粒子编辑器 165
9.7 粒子系统实例―烟花瀑 169
小结 175
习题和实验 175
第10章 游戏音效编程 177
10.1 声音基础 177
10.2 常见的音效引擎 181
10.3 Cocos2d-x中的音乐和
音效 182
10.3.1 音乐和音效的预加载 182
10.3.2 播放和停止 183
10.3.3 暂停和恢复播放 185
10.3.4 其他成员 185
10.4 游戏音效编程实例 186
小结 188
习题和实验 188
第11章 游戏中的人工智能 189
11.1 游戏AI概述 189
11.2 游戏AI基本类型 190
11.3 常用的游戏AI技术 190
11.3.1 有限状态机 191
11.3.2 模糊逻辑 192
11.3.3 人工神经网络 192
11.3.4 遗传算法 193
11.3.5 脚本语言 193
11.4 二维游戏寻路与A*算法 194
11.4.1 游戏寻路技术 194
11.4.2 A*算法及其实现 195
11.5 游戏AI实例――迷宫寻宝 200
小结 205
习题和实验 206
第12章 网络游戏编程 207
12.1 网络游戏的基本架构 207
12.2 网络游戏通信协议 208
12.3 网络游戏多线程编程 209
12.4 常见的游戏开发网络框架 211
12.5 Cocos2d-x中的网络通信 211
12.5.1 HTTP网络通信 212
12.5.2 Socket网络通信 214
12.5.3 WebSocket网络通信 217
12.6 游戏网络编程实例――网络
坦克大战 218
12.6.1 准备工作 218
12.6.2 解析JSON 218
12.6.3 连接网络 220
12.6.4 游戏逻辑实现 225
小结 227
习题和实验 228
第13章 游戏中的脚本编程 229
13.1 Lua简介 229
13.2 Lua语言的语法 230
13.2.1 数值和类型 230
13.2.2 表达式 231
13.2.3 语句 232
13.2.4 函数 235
13.3 Lua程序与C++程序通信 236
13.3.1 C++代码调用Lua函数 237
13.3.2 Lua代码调用C++函数 238
13.4 Lua脚本在Cocos2d-x中的
应用 239
13.5 游戏脚本编程实例――守卫
宝箱 239
小结 246
习题和实验 246
第14章 计算机游戏综合实例 247
14.1 全局控制和管理 247
14.2 游戏数据解析 250
14.2.1 CSV文件解析 250
14.2.2 SQLite数据库应用 253
14.3 场景绘制 262
14.3.1 地图绘制 263
14.3.2 模型封装和导入 267
14.4 界面设计 276
14.4.1 主界面构建 276
14.4.2 对话框设计 280
14.5 动画效果 285
14.6 游戏AI 287
小结 289
参考文献 290