Visual Studio 2005 C++是一种全新的游戏开发平台,本书侧重于介绍Visual Studio 2005 C++在开发中的应用,重点介绍如何利用Visual Studio 2005 C++与DirectX 9.0C结合实现游戏的开发。
全书通过实例循序渐进地介绍以Visual Studio 2005 C++与DirectX 9.0C为基本开发环境的Windows游戏程序设计的原理、方法。主要内容包括:基本Visual Studio 2005 C++开发方法介绍、游戏开发的基础知识、游戏开发的高级技术、游戏开发中的基础数学知识、游戏的声音与输人编程、网络游戏开发的基础知识及游戏中的AI开发的基础知识。
本文通过实例循序渐进地介绍以Visual Studio 2005 C++与DirectX 9.0C为基本开发环境的Windows游戏程序设计的原理、方法。主要内容包括:基本Visual Studio 2005 C++开发方法介绍、游戏开发的基础知识、游戏开发的高级技术、游戏开发中的基础数学知识、游戏的声音与输人编程、网络游戏开发的基础知识及游戏中的AI开发的基础知识。
本书对所介绍的游戏开发技术都给出了具有代表性的实例,而且将Visual Studio 2005 C++与DirectX 9.0C结合的开发特性与技术融人到具体的游戏开发实例中,使读者通过实例的学习,能够迅速掌握游戏开发技术。
本书图文并茂,内容全面、深入,适合于使用Visual Studio 2005 C++与DirectX 9.0C游戏开发的初级开发人员使用及参考。
第1章 编写游戏的语言
1.1 VC.NET开发工具概述
1.1.1 为什么使用C++作为游戏开发语言
1.1.2 创建第一个项目
1.2 VC.NET基础知识
1.2.1 基本数据类型
1.2.2 变量
1.2.3 操作符与表达式
1.2.4 名字的作用域
1.2.5 命名空间
1.2.6 预编译指令
1.3 结构、联合与枚举
1.3.1 结构
1.3.2 联合
1.3.3 枚举
1.4 控制语句
1.4.1 if语句
1.4.2 switeh语句
1.4.3 while语句
1.4.4 do while语句
1.4.5 for语句
1.5 指针与数组
1.5.1 指针
1.5.2 数组
1.6 函数与常用函数
1.6.1 函数定义
1.6.2 函数声明
1.6.3 参数传递
1.6.4 内联函数
1.6.5 重载函数
1.6.6 常用函数
1.7 总结
第2章 如何更好地编写VC.NET程序
2.1 类概述
2.1.1 类的定义与声明
2.1.2 类对象
2.1.3 隐含的this指针
2.1.4 类的作用域
2.2 类的构造函数
2.2.1 构造函数的初始化
2.2.2 默认实参与构造函数
2.2.3 使用构造函数
2.3 类的静态成员
2.3.1 定义静态成员
2.3.2 静态成员函数
2.3.3 静态数据成员
2.3.4 类的静态成员使用
2.4 操作符重载
2.4.1 操作符重载的定义
2.4.2 操作符重载的使用
2.5 类的继承
2.5.1 定义基类和派生类
2.5.2 类继承的使用
2.6 虚函数与抽象类
2.6.1 虚函数的概念
2.6.2 多态
2.6.3 虚函数的语法
2.6.4 虚函数使用技巧
2.7 模板
2.7.1 模板定义
2.7.2 模板的使用
2.8 异常处理
2.8.1 异常处理的概念
2.8.2 throw表达式
2.8.3 try块
2.8.4 标准异常类
2.8.5 标准库异常类
2.9 总结
第3章 游戏开发基础
3.1 Windows编程基础知识
3.1.1 基本Windows程序
3.1.2 WinMain函数
3.1.3 消息处理函数
3.1.4 常用Windows函数
3.2 游戏编程的图形基础知识
3.2.1 像素和分辨率
3.2.2 RGB色彩
3.2.3 设备无关位图(DIB)
3.2.4 位深度
3.2.5 抖动处理
3.2.6 调色板
3.2.7 GDI与DirectDraw
3.2.8 位块传送
3.2.9 翻页
3.2.10 矩形
3.2.11 精灵动画
3.2.12 关键色
3.2.13 补丁
3.2.14 范围检查与碰撞检测
3.3 Direct3D
3.3.1 Dircct3D概述
3.3.2 Driect3D的基础知识
3.3.3 初始化Driect3D
3.4 绘制三角形
3.5 绘制立方体
3.6 矩阵旋转
3.7 总结
第4章 游戏开发中的数学知识
4.1 向量
4.2 矩阵
4.3 基本变换
4.4 游戏开发的平面知识
4.5 总结
第5章 丰富的游戏开发技巧
5.1 基本特效工具
5.1.1 初始化GDI+
5.1.2 画笔与画刷
5.1.3 GDI+绘图函数
5.1.4 图形几何变换
5.2 游戏中的纹理制作
5.2.1 纹理概述
5.2.2 在DirectX中使用纹理
5.3 游戏中的灯光与材质
5.3.1 DirectX光照与真实世界光照
5.3.2 在游戏中实现灯光
5.4 游戏中的各种形状
5.5 索引缓冲
5.5.1 什么是索引缓冲
5.5.2 在DIRECTX中实现索引缓冲
5.5.3 创建地形
5.6 游戏中的3D模型
5.7 游戏中的2D图形
5.8 总结
第6章 游戏的声音与输入处理
6.1 声音与音乐输入
6.1.1 DirectSound简介
6.1.2 DirectSound常用对象
6.1.3 DirectSound设备对象
6.1.4 DirectSound的buffer对象
6.1.5 使用wAV文件
6.1.6 增加声音特效
6.1.7 完整的示例
6.2 键盘与鼠标输入
6.2.1 DirectInput基础
6.2.2 DirectInput的实际使用
6.2.3 缓冲数据与即时数据
6.3 总结
第7章 游戏的数据结构与加速游戏
7.1 游戏的数据结构
7.1.1 链表
7.1.2 哈希表
7.1.3 快速排序
7.1.4 深度优先搜索
7.1.5 广度优先搜索
7.1.6 启发式搜索
7.1.7 动态规划
7.1.8 神经网络
7.1.9 遗传规划
7.2 加速游戏的技巧
7.2.1 内嵌汇编简介
7.2.2 基本指令
7.2.3 算术指令
7.2.4 逻辑与移位指令
7.2.5 比较、测试、转移与循环指令
7.2.6 MMX指令集之基本指令
7.2.7 MMX指令集之算术与比较指令
7.2.8 MMX指令集之逻辑与移位指令
7.2.9 MMX指令集之格式调整指令
7.3 总结
第8章 游戏中的3D世界
8.1 3D字体
8.1.1 ID3DXFont
8.1.2 ID3DXFont
8.1.3 D3DXCreateText
8.2 游戏开发中的mesh模型
8.2.1 几何信息
8.2.2 子集和属性缓存
8.2.3 绘制
8.2.4 优化
8.2.5 属性表
8.2.6 邻接信息
8.2.7 复制
8.2.8 创建一个Mesh
8.2.9 实例程序:创建和渲染Mesh
8.3 X文件
8.3.1 ID3DXBuffer
8.3.2 X文件
8.3.3 读取X文件
8.3.4 X文件的材质
8.3.5 实例程序:X文件
8.3.6 产生顶点法线
8.4 渐进网格
8.4.1 产生一个渐进网格
8.4.2 顶点品质权重
8.4.3 ID3DXPMesh接口
8.4.4 实例程序:渐进网格
8.5 界线容积
8.5.1 一些新的特殊常量
8.5.2 界线容积类型
8.5.3 实例程序:界线容积
8.6 创建灵活的摄像机类
8.6.1 摄像机设计
8.6.2 执行详细资料
8.6.3 实例程序:摄像机
8.7 粒子系统
8.7.1 粒子系统简介
8.7.2 粒子系统的实现
8.7.3 粒子系统的渲染过程
8.7.4 粒子系统的精灵
8.7.5 粒子系统的例子
8.8 骨骼动画
8.8.1 骨骼动画简介
8.8.2 骨骼动画实现
8.8.3 骨骼动画例子
8.9 总结
第9章 网络世界中的游戏
9.1 网络游戏开发的基本概念
9.1.1 客户/服务会话
9.1.2 初始化客户/服务会话
9.1.3 为客户端选择一个服务协议
9.1.4 选择客户端与服务器的主机地址
9.1.5 连接客户端与服务端的会话
9.1.6 管理客户/服务会话
9.2 网络游戏的开发
9.2.1 网络通信模块
9.2.2 服务器和客户端的游戏协议
9.2.3 线程池技术
9.2.4 内存分配处理技术
9.2.5 线程同步
9.2.6 完成端口模式下的高性能网络服务器
9.3 Windows Socket介绍
9.3.1 第一个网络程序
9.3.2 服务器端
9.3.3 客户端
9.3.4 程序实例
9.3.5 错误处理
9.3.6 显示IP地址
9.4 总结
第10章 游戏中的AI
10.1 游戏AI基础
10.1.1 单位活动AI
10.1.2 反应性AI
10.1.3 自发性AI
10.1.4 单位行动
10.2 游戏AI初步
10.2.1 何谓启发式搜索算法
10.2.2 人工智能算法的基础
10.2.3 人工智能算法实例
10.2.4 人工智能方法总结
10.3 总结
参考文献