描述
开 本: 16开纸 张: 胶版纸包 装: 平装国际标准书号ISBN: 9787121274251
编辑推荐
1. 本书采用案例教学方式,理论讲解与实践密切结合;2. 本书由浅入深、内容全面,提供框架程序、PPT等
内容简介
本书系统介绍了Windows API二维开发和Direct3D三维游戏开发和Unity游戏开发相关概念和实现技术。由浅入深,详细介绍了各部分的环境搭建和开发方法。内容全面,完整详细地讲解了二维游戏、Direct3D游戏和利用Unity开发游戏的相关内容,注重理论与实践的结合,对于每一章讲解的技术环节都有对应的实现示例。本书配套提供PPT、源代码等。
本书在内容安排上很适合本科教学,对游戏开发感兴趣的初学者自学时也推荐使用本书。
本书在内容安排上很适合本科教学,对游戏开发感兴趣的初学者自学时也推荐使用本书。
目 录
第1章 游戏程序设计概述 1
1.1 计算机游戏的概念 1
1.2 计算机游戏的分类 2
1.2.1 角色扮演游戏(RPG,Role-Playing Game) 2
1.2.2 动作类游戏(ACT, Action Game) 3
1.2.3 实时策略游戏(RTS,Real-Time Strategy Game ) 3
1.2.4 **视觉射击游戏(FPS,First-Person Shooter) 3
1.2.5 模拟游戏(Simulation Game) 4
1.2.6 体育类游戏(SRT,Sports Game) 4
1.3 设计游戏的要素 4
1.3.1 策划 5
1.3.2 程序 5
1.3.3 美术 5
1.3.4 音乐 6
1.4 计算机游戏的发展趋势 6
1.4.1 沉浸感 6
1.4.2 交互性 6
1.4.3 国际化 7
第2章 Win32应用程序 8
2.1 VS2010中Win32应用程序创建过程 8
2.2 Windows主函数 11
2.3 窗口建立过程 12
2.4 Windows消息循环 14
2.5 窗口过程函数 15
2.6 Win32应用程序示例 16
2.7 游戏程序框架 18
第3章 Windows绘图函数 22
3.1 屏幕绘图的相关概念 22
3.1.1 窗口和视口 22
3.1.2 GDI 坐标系 23
3.2 画笔,画刷与文字 25
3.2.1 GDI对象的建立 25
3.2.2 GDI对象的选用与删除 27
3.2.3 GDI示例 27
3.3 GDI绘图函数 31
3.3.1 点线函数 31
3.3.2 形状函数 32
3.3.3 填充函数 33
第4章 游戏中的角色与场景 34
4.1 位图显示 34
4.2 镂空贴图 37
4.2.1 使用BitBlt()中的参数Raster完成镂空贴图 38
4.2.2 使用TransparentBlt()函数完成镂空贴图 39
4.3 地图显示 40
4.3.1 平面拼接地图 40
4.3.2 斜角拼接地图 43
第5章 动画 48
5.1 使用定时器完成游戏动画 48
5.1.1 建立定时器 48
5.1.2 删除定时器 49
5.1.3 示例 49
5.2 利用消息循环完成游戏动画 51
5.2.1 利用消息循环完成动画原理 51
5.2.2 示例 53
第6章 键盘与鼠标交互 55
6.1 Windows键盘消息处理 55
6.1.1 Windows键盘概述 55
6.1.2 键盘消息处理 56
6.1.3 键盘交互程序示例 57
6.2 Windows鼠标消息处理 61
6.2.1 鼠标消息的处理方式 61
6.2.2 示例 63
6.2.3 相关函数的讲解 69
第7章 运动与碰撞检测 71
7.1 运动 71
7.1.1 匀速直线运动 71
7.1.2 变速运动 75
7.2 碰撞检测 77
7.2.1 以物体框架来检测碰撞 77
7.2.2 用颜色来检测碰撞 79
7.3 粒子系统 83
第8章 3D游戏概述 84
8.1 3D坐标系及转换 84
8.2 模型对象的建立 85
8.3 视图变换 85
8.3.1 平移变换 86
8.3.2 旋转变换 86
8.3.3 缩放变换 87
8.4 投影变换 87
8.5 3D游戏的开发手段 88
第9章 Direct3D简介 90
9.1 Direct3D的体系结构 90
9.1.1 Direct3D的绘制流程 90
9.1.2 Direct3D绘制程序框架图 91
9.2 Direct3D开发环境配置 92
9.3 Direct3D初始化 94
9.3.1 创建Direct3D接口对象。 95
9.3.2 获取设备的硬件信息 95
9.3.3 填充D3DPRESENT_PARAMETERS结构体 96
9.3.4 IDirect3D设备接口的创建 98
9.4 Direct3D渲染 99
9.4.1 清屏操作 99
9.4.2 绘制 100
9.4.3 翻转显示 100
9.4.4 Direct3D的渲染过程 101
9.5 Direct3D中二维文本的绘制 102
9.6 Direct3D框架程序 104
第10章 Direct3D图形绘制基础 111
10.1 以顶点缓存为数据源的图形绘制 112
10.1.1 基础知识 112
10.1.2 在Direct3D编程中使用顶点缓存的四个步骤 113
10.2 顶点缓存程序示例 120
10.3 以索引缓存为数据源的图形绘制 123
10.2.1 索引缓存绘图 124
10.4 索引缓存程序示例 128
10.5 Direct3D内置几何体概述 132
10.3.1 立方体的创建 132
10.3.2 圆柱体的创建 133
10.3.3 2D 多边形的创建 134
10.3.4 球体创建 134
10.3.5 圆环的创建 135
10.3.6 茶壶的创建 135
第11章 Direct3D变换 137
11.1 视图变换 137
11.2 投影变换 141
11.3 视口变换 142
11.4 Direct3D变换示例 143
11.5 Direct3D固定功能渲染流水线概述 148
第12章 Direct3D光照与材质 150
12.1 光照类型 150
12.1.1 环境光 150
12.1.2 漫反射光 151
12.1.3 镜面反射光 151
12.1.4 自发光 152
12.2 光源类型。 152
12.2.1 点光源 154
12.2.2 方向光源 154
12.2.3 聚光灯光源 155
12.3 材质 155
12.4 灯光与材质示例 157
第13章 纹理映射 163
13.1 纹理映射的概念 163
13.2 Direct3D中纹理映射的实现方法 163
13.2.1 纹理坐标的定义 163
13.2.2 顶点坐标与纹理坐标的对应 164
13.2.3 纹理的创建 165
13.2.4 纹理的启用 166
13.3 纹理绘制示例 168
第14章 游戏引擎 174
14.1 什么是游戏引擎 174
14.2 目前比较流行的几款主流引擎 175
14.3 Unity游戏引擎简介 176
14.4 Unity下载与安装 178
第15章 Unity程序开发框架和编辑器使用 181
15.1 Unity程序开发框架、工程和应用以及场景的关系 181
15.2 工程的创建和导入 182
15.3 Unity编辑器介绍 184
15.3.1 官方资源导入方法: 184
15.3.2 场景中的6个视图 185
15.3.3 编辑器界面设置。 186
15.3.1 Unity编辑器——Project(项目视图) 186
15.3.2 Unity编辑器——Hierarchy(层次视图) 188
15.3.3 Unity编辑器——Inspector(检视视图) 190
15.3.4 Unity编辑器——Scene(场景视图) 192
15.3.5 Unity编辑器——Game(游戏视图) 194
15.3.6 Unity编辑器——Console(控制台视图) 195
第16章 资源和游戏对象 196
16.1 Unity资源 196
16.1.1 场景、资源、游戏对象、组件间的关系 196
16.1.2 内部资源创建 198
16.1.3 外部资源导入 199
16.1.4 Unity中预设的创建 200
16.1.5 Unity中图片、模型和音频、视频的支持 200
16.2 Unity 常用组件介绍 201
16.2.1 Transform(变换组件) 202
16.2.2 Camera(摄像机组件) 203
16.2.3 Lights(光源) 204
16.3 常用物理引擎组件 205
16.3.1 Rigidbody(刚体组件) 206
16.3.2 Collider(碰撞器组件) 207
第17章 Unity脚本程序基础 209
17.1 什么是脚本程序 209
17.2 Unity脚本编辑器 210
17.3 Unity脚本的创建与编辑 211
17.3.1 Script(脚本)创建 211
17.3.2 编辑脚本程序 212
17.3.3 常用事件函数 214
17.3.4 游戏对象和组件访问 215
第18章 Unity GUI图形用户界面 218
18.1 UGUI的基本介绍 218
18.2 UGUI的创建和基本操作 219
18.3 UGUI实例演示 220
18.3.1 GUI之Button和Text 221
18.3.2 GUI之Toggle应用 222
18.3.3 GUI的Image和Scrollbar应用 224
18.3.4 通过Button调用其他场景 225
18.3.5 Slider与游戏对象 226
18.4 打包与发布 227
第19章 Mecanim动画系统 229
19.1 Mecanim动画系统及其优势 229
19.2 Mecanim工作流程 230
19.3 人形角色动画讲解 230
第20章 游戏开发实例——奔跑的轮胎 239
参考文献 261
1.1 计算机游戏的概念 1
1.2 计算机游戏的分类 2
1.2.1 角色扮演游戏(RPG,Role-Playing Game) 2
1.2.2 动作类游戏(ACT, Action Game) 3
1.2.3 实时策略游戏(RTS,Real-Time Strategy Game ) 3
1.2.4 **视觉射击游戏(FPS,First-Person Shooter) 3
1.2.5 模拟游戏(Simulation Game) 4
1.2.6 体育类游戏(SRT,Sports Game) 4
1.3 设计游戏的要素 4
1.3.1 策划 5
1.3.2 程序 5
1.3.3 美术 5
1.3.4 音乐 6
1.4 计算机游戏的发展趋势 6
1.4.1 沉浸感 6
1.4.2 交互性 6
1.4.3 国际化 7
第2章 Win32应用程序 8
2.1 VS2010中Win32应用程序创建过程 8
2.2 Windows主函数 11
2.3 窗口建立过程 12
2.4 Windows消息循环 14
2.5 窗口过程函数 15
2.6 Win32应用程序示例 16
2.7 游戏程序框架 18
第3章 Windows绘图函数 22
3.1 屏幕绘图的相关概念 22
3.1.1 窗口和视口 22
3.1.2 GDI 坐标系 23
3.2 画笔,画刷与文字 25
3.2.1 GDI对象的建立 25
3.2.2 GDI对象的选用与删除 27
3.2.3 GDI示例 27
3.3 GDI绘图函数 31
3.3.1 点线函数 31
3.3.2 形状函数 32
3.3.3 填充函数 33
第4章 游戏中的角色与场景 34
4.1 位图显示 34
4.2 镂空贴图 37
4.2.1 使用BitBlt()中的参数Raster完成镂空贴图 38
4.2.2 使用TransparentBlt()函数完成镂空贴图 39
4.3 地图显示 40
4.3.1 平面拼接地图 40
4.3.2 斜角拼接地图 43
第5章 动画 48
5.1 使用定时器完成游戏动画 48
5.1.1 建立定时器 48
5.1.2 删除定时器 49
5.1.3 示例 49
5.2 利用消息循环完成游戏动画 51
5.2.1 利用消息循环完成动画原理 51
5.2.2 示例 53
第6章 键盘与鼠标交互 55
6.1 Windows键盘消息处理 55
6.1.1 Windows键盘概述 55
6.1.2 键盘消息处理 56
6.1.3 键盘交互程序示例 57
6.2 Windows鼠标消息处理 61
6.2.1 鼠标消息的处理方式 61
6.2.2 示例 63
6.2.3 相关函数的讲解 69
第7章 运动与碰撞检测 71
7.1 运动 71
7.1.1 匀速直线运动 71
7.1.2 变速运动 75
7.2 碰撞检测 77
7.2.1 以物体框架来检测碰撞 77
7.2.2 用颜色来检测碰撞 79
7.3 粒子系统 83
第8章 3D游戏概述 84
8.1 3D坐标系及转换 84
8.2 模型对象的建立 85
8.3 视图变换 85
8.3.1 平移变换 86
8.3.2 旋转变换 86
8.3.3 缩放变换 87
8.4 投影变换 87
8.5 3D游戏的开发手段 88
第9章 Direct3D简介 90
9.1 Direct3D的体系结构 90
9.1.1 Direct3D的绘制流程 90
9.1.2 Direct3D绘制程序框架图 91
9.2 Direct3D开发环境配置 92
9.3 Direct3D初始化 94
9.3.1 创建Direct3D接口对象。 95
9.3.2 获取设备的硬件信息 95
9.3.3 填充D3DPRESENT_PARAMETERS结构体 96
9.3.4 IDirect3D设备接口的创建 98
9.4 Direct3D渲染 99
9.4.1 清屏操作 99
9.4.2 绘制 100
9.4.3 翻转显示 100
9.4.4 Direct3D的渲染过程 101
9.5 Direct3D中二维文本的绘制 102
9.6 Direct3D框架程序 104
第10章 Direct3D图形绘制基础 111
10.1 以顶点缓存为数据源的图形绘制 112
10.1.1 基础知识 112
10.1.2 在Direct3D编程中使用顶点缓存的四个步骤 113
10.2 顶点缓存程序示例 120
10.3 以索引缓存为数据源的图形绘制 123
10.2.1 索引缓存绘图 124
10.4 索引缓存程序示例 128
10.5 Direct3D内置几何体概述 132
10.3.1 立方体的创建 132
10.3.2 圆柱体的创建 133
10.3.3 2D 多边形的创建 134
10.3.4 球体创建 134
10.3.5 圆环的创建 135
10.3.6 茶壶的创建 135
第11章 Direct3D变换 137
11.1 视图变换 137
11.2 投影变换 141
11.3 视口变换 142
11.4 Direct3D变换示例 143
11.5 Direct3D固定功能渲染流水线概述 148
第12章 Direct3D光照与材质 150
12.1 光照类型 150
12.1.1 环境光 150
12.1.2 漫反射光 151
12.1.3 镜面反射光 151
12.1.4 自发光 152
12.2 光源类型。 152
12.2.1 点光源 154
12.2.2 方向光源 154
12.2.3 聚光灯光源 155
12.3 材质 155
12.4 灯光与材质示例 157
第13章 纹理映射 163
13.1 纹理映射的概念 163
13.2 Direct3D中纹理映射的实现方法 163
13.2.1 纹理坐标的定义 163
13.2.2 顶点坐标与纹理坐标的对应 164
13.2.3 纹理的创建 165
13.2.4 纹理的启用 166
13.3 纹理绘制示例 168
第14章 游戏引擎 174
14.1 什么是游戏引擎 174
14.2 目前比较流行的几款主流引擎 175
14.3 Unity游戏引擎简介 176
14.4 Unity下载与安装 178
第15章 Unity程序开发框架和编辑器使用 181
15.1 Unity程序开发框架、工程和应用以及场景的关系 181
15.2 工程的创建和导入 182
15.3 Unity编辑器介绍 184
15.3.1 官方资源导入方法: 184
15.3.2 场景中的6个视图 185
15.3.3 编辑器界面设置。 186
15.3.1 Unity编辑器——Project(项目视图) 186
15.3.2 Unity编辑器——Hierarchy(层次视图) 188
15.3.3 Unity编辑器——Inspector(检视视图) 190
15.3.4 Unity编辑器——Scene(场景视图) 192
15.3.5 Unity编辑器——Game(游戏视图) 194
15.3.6 Unity编辑器——Console(控制台视图) 195
第16章 资源和游戏对象 196
16.1 Unity资源 196
16.1.1 场景、资源、游戏对象、组件间的关系 196
16.1.2 内部资源创建 198
16.1.3 外部资源导入 199
16.1.4 Unity中预设的创建 200
16.1.5 Unity中图片、模型和音频、视频的支持 200
16.2 Unity 常用组件介绍 201
16.2.1 Transform(变换组件) 202
16.2.2 Camera(摄像机组件) 203
16.2.3 Lights(光源) 204
16.3 常用物理引擎组件 205
16.3.1 Rigidbody(刚体组件) 206
16.3.2 Collider(碰撞器组件) 207
第17章 Unity脚本程序基础 209
17.1 什么是脚本程序 209
17.2 Unity脚本编辑器 210
17.3 Unity脚本的创建与编辑 211
17.3.1 Script(脚本)创建 211
17.3.2 编辑脚本程序 212
17.3.3 常用事件函数 214
17.3.4 游戏对象和组件访问 215
第18章 Unity GUI图形用户界面 218
18.1 UGUI的基本介绍 218
18.2 UGUI的创建和基本操作 219
18.3 UGUI实例演示 220
18.3.1 GUI之Button和Text 221
18.3.2 GUI之Toggle应用 222
18.3.3 GUI的Image和Scrollbar应用 224
18.3.4 通过Button调用其他场景 225
18.3.5 Slider与游戏对象 226
18.4 打包与发布 227
第19章 Mecanim动画系统 229
19.1 Mecanim动画系统及其优势 229
19.2 Mecanim工作流程 230
19.3 人形角色动画讲解 230
第20章 游戏开发实例——奔跑的轮胎 239
参考文献 261
前 言
前 言
计算机相关专业的学生在学习游戏程序开发前,一般已经学习过数据结构,操作系统和面向对象程序开发等专业课程,有些还学过计算机图形学等课程,但没有游戏程序开发系统方面的知识,目前市场上适合本科教学的游戏开发教材匮乏。
本教材从游戏开发的角度,以理论和实践相结合的方式,系统介绍了计算机游戏开发方法。目前市场上的计算机游戏主要分为二维游戏和三维游戏,针对这样的情况,教材内容安排如下:
**章介绍了计算机游戏的相关概念和分类。
第二章到第七章讲解利用Windows API函数完成二维游戏制作,内容包括Windows程序窗口生成和消息机制,贴图,交互,碰撞等内容。
第八章到第十三章讲解利用Direct3D进行三维游戏的制作,内容包括三维游戏的基本原理,Direct3D的安装和初始化过程,Direct 3D图形绘制基础,变换,光照和纹理映射等。
第十四章到第十九章讲解Unity进行游戏开发的方法。内容主要从初学者入门的角度去讲解Unity游戏开发,无论是有无编程经验都可以阅读本部分,从而快速掌握如何使用Unity引擎制作3D游戏。内容包括Unity安装方法,Unity程序开发框架和编辑器的使用,资源和游戏对象,脚本程序和用户界面以及动画系统等。
本教材有如下几个鲜明特点:
1. 由浅入深
一般本科生在刚刚完成一二年级的相关课程学习后,实际动手进行程序开发的能力还未形成,本教材充分考虑到这种普遍存在的情况,在二维游戏,Direct3D游戏开发和Unity游戏开发前,细致地进行环境搭建的讲解。
2. 内容全面
本教材全面介绍了Windows二维游戏和三维游戏的开发方法,即讲解了利用Windows API开发二维游戏,Direct3D开发三维游戏这些底层游戏开发方法,也详细讲解了利用目前*流行的一款游戏引擎Unity开发游戏的方法。
3. 提供框架程序
在讲解二维游戏,Direct3D游戏开发和Unity游戏时,对于每一部分内容,首先详细介绍了框架程序的构建过程,以后的内容在框架程序的基础上完成,降低了学生的学习和开发难度。
4. 理论讲解与实践密切结合
在每一章的讲解中,首先对相关理论进行介绍,然后详细讲解相关函数,*后在对应的程序框架内,利用本章学到的函数完成相关功能的演示。
由于本课程的独特的特点,教材没有安排课后习题,学生需要在程序框架内独立完成教材相关代码的演示,就能掌握相关章节内容。
本教材的教学讲义已在教学实践中使用,所有教学内容,案例均在教学实践中使用。全部内容的课堂教学54学时,实验20学生,综合实训24学时。
本教材根据教学讲义改编而成,教学讲义编写过程中参考了大量游戏开发的书籍和资料,包括荣钦科技出版的Visual C++游戏编程教材,毛星云编写的Windows游戏编程之从零开始,Unity 4.X从入门到精通和Unity开发网站等,在此表示衷心感谢。
计算机相关专业的学生在学习游戏程序开发前,一般已经学习过数据结构,操作系统和面向对象程序开发等专业课程,有些还学过计算机图形学等课程,但没有游戏程序开发系统方面的知识,目前市场上适合本科教学的游戏开发教材匮乏。
本教材从游戏开发的角度,以理论和实践相结合的方式,系统介绍了计算机游戏开发方法。目前市场上的计算机游戏主要分为二维游戏和三维游戏,针对这样的情况,教材内容安排如下:
**章介绍了计算机游戏的相关概念和分类。
第二章到第七章讲解利用Windows API函数完成二维游戏制作,内容包括Windows程序窗口生成和消息机制,贴图,交互,碰撞等内容。
第八章到第十三章讲解利用Direct3D进行三维游戏的制作,内容包括三维游戏的基本原理,Direct3D的安装和初始化过程,Direct 3D图形绘制基础,变换,光照和纹理映射等。
第十四章到第十九章讲解Unity进行游戏开发的方法。内容主要从初学者入门的角度去讲解Unity游戏开发,无论是有无编程经验都可以阅读本部分,从而快速掌握如何使用Unity引擎制作3D游戏。内容包括Unity安装方法,Unity程序开发框架和编辑器的使用,资源和游戏对象,脚本程序和用户界面以及动画系统等。
本教材有如下几个鲜明特点:
1. 由浅入深
一般本科生在刚刚完成一二年级的相关课程学习后,实际动手进行程序开发的能力还未形成,本教材充分考虑到这种普遍存在的情况,在二维游戏,Direct3D游戏开发和Unity游戏开发前,细致地进行环境搭建的讲解。
2. 内容全面
本教材全面介绍了Windows二维游戏和三维游戏的开发方法,即讲解了利用Windows API开发二维游戏,Direct3D开发三维游戏这些底层游戏开发方法,也详细讲解了利用目前*流行的一款游戏引擎Unity开发游戏的方法。
3. 提供框架程序
在讲解二维游戏,Direct3D游戏开发和Unity游戏时,对于每一部分内容,首先详细介绍了框架程序的构建过程,以后的内容在框架程序的基础上完成,降低了学生的学习和开发难度。
4. 理论讲解与实践密切结合
在每一章的讲解中,首先对相关理论进行介绍,然后详细讲解相关函数,*后在对应的程序框架内,利用本章学到的函数完成相关功能的演示。
由于本课程的独特的特点,教材没有安排课后习题,学生需要在程序框架内独立完成教材相关代码的演示,就能掌握相关章节内容。
本教材的教学讲义已在教学实践中使用,所有教学内容,案例均在教学实践中使用。全部内容的课堂教学54学时,实验20学生,综合实训24学时。
本教材根据教学讲义改编而成,教学讲义编写过程中参考了大量游戏开发的书籍和资料,包括荣钦科技出版的Visual C++游戏编程教材,毛星云编写的Windows游戏编程之从零开始,Unity 4.X从入门到精通和Unity开发网站等,在此表示衷心感谢。
评论
还没有评论。