编辑推荐
游戏编程经典入门读物的**版,更新到**的第4版。
本书自第1版出版至今已经长达十年,深受广大读者欢迎。本书有志于进入游戏编程世界且有一定C 编程基础的初学者阅读,也适合作为社会培训机构的培训教材。
读者将学习到把思想转化为现实所需的技术,比如2D、3D图形的绘制、背景卷动、处理游戏输入、音效、碰撞检测等。在每章结束时,给出了测验题和项目以便帮助读者实践新学到的技能。
本书的配套网站 jharbour.com提供了所有示例代码和项目的下载。
内容简介
本书是游戏编程经典入门读物的*版。
全书共分14章,包含两个附录。本书首先介绍Windows和DirectX编程,然后快速介绍游戏编程的工具箱,包括使用C 和DirectX开发游戏所需的所有基础知识。读者将学习到把思想转化为现实所需的技术,比如2D、3D图形的绘制、背景卷动、处理游戏输入、音效、碰撞检测等。在每章结束时,给出了测验题和项目以便帮助读者实践新学到的技能。本书配套网站提供了所有示例代码和项目的下载。
本书自第1版出版至今已经长达十年,深受广大读者欢迎。本书有志于进入游戏编程世界且有一定C 编程基础的初学者阅读,也适合作为社会培训机构的培训教材。
作者简介
Jonathan S. Harbour编写了19本游戏开发方面的书,有针对PC、Mac、Linux、Android、Windows Phone和游戏控制台的。他在University of Advancing Technology(www.uat.edu)教了5年课程,在那里,他和学生一起使用PlayStation 2 TOOL开发工具包、Nintendo Dolphin SDK、Xbox 360 XNA SDK、人工智能、数据库、DirectX等工具和技术。他还教授了C 、Java、VB、C#、LUA、Python和SQL课程。他的个人站点是jharbour.com。
目录
- 第1部分 Windows和DirectX游戏编程引言
- 第1章 Windows初步
- 1.1 Windows编程概述
- 1.1.1 "获取"Windows
- 1.1.2 理解Windows消息机制
- 1.1.3 多任务
- 1.1.4 多线程
- 1.1.5 事件处理
- 1.2 DirectX快速概览
- Direct3D是什么
- 1.3 Windows程序基础
- 1.3.1 创建第一个Win32项目
- 1.3.2 理解WinMain
- 1.3.3 完整的WinMain
- 1.4 你所学到的
- 1.5 复习测验
- 1.6 自己动手
- 第2章 侦听Windows消息
- 2.1 编写一个Windows程序
- 2.1.1 理解InitInstance
- 2.1.2 理解MyRegisterClass
- 2.1.3 晒一晒WinProc的秘密
- 2.2 什么是游戏循环
- 2.2.1 老的WinMain
- 2.2.2 WinMain和循环
- 2.3 GameLoop项目
- GameLoop程序的源代码
- 2.4 你所学到的
- 2.5 复习测验
- 2.6 自己动手
- 第3章 初始化Direct3D
- 3.1 Direct3D初步
- 3.1.1 Direct3D接口
- 3.1.2 创建Direct3D对象
- 3.1.3 第一个Direct3D项目
- 3.1.4 全屏模式的Direct3D
- 3.2 你所学到的
- 3.3 复习测验
- 3.4 自己动手
- 第2部分 游戏编程工具箱
- 第4章 绘制位图
- 4.1 表面和位图
- 4.1.1 主表面
- 4.1.2 从的离屏(off-screen)表面
- 4.1.3 Create Surface示例
- 4.1.4 装载位图
- 4.1.5 Load_Bitmap程序
- 4.1.6 代码回收利用
- 4.2 你所学到的
- 4.3 复习测验
- 4.4自己动手
- 第5章 从键盘、鼠标和控制器获得输入
- 5.1 键盘输入
- 5.1.1 DirectInput对象和设备
- 5.1.2 初始化键盘
- 5.1.3 读取键盘按键
- 5.2 鼠标输入
- 5.2.1 初始化鼠标
- 5.2.2 读取鼠标
- 5.3 Xbox 360控制器输入
- 5.3.1 初始化XInput
- 5.3.2 读取控制器状态
- 5.3.3 控制器振动
- 5.3.4 测试XInput
- 5.4 精灵编程简介
- 5.4.1 一个有用的精灵结构
- 5.4.2 加载精灵图像
- 5.4.3 绘制精灵图像
- 5.5 Bomb Catcher游戏
- 5.5.1 MyWindows.cpp
- 5.5.2 MyDirectX.h
- 5.5.3 MyDirectX.cpp
- 5.5.4 MyGame.cpp
- 5.6 你所学到的
- 5.7 复习测验
- 5.8 自己动手
- 第6章 绘制精灵并显示精灵动画
- 6.1 什么是精灵
- 6.2 加载精灵图像
- 6.3 透明的精灵
- 6.3.1 初始化精灵渲染器
- 6.3.2 绘制透明的精灵
- 6.4 绘制动画的精灵
- 6.4.1 使用精灵表
- 6.4.2 精灵动画演示
- 6.5 你所学到的
- 6.6 复习测验
- 6.7 自己动手
- 第7章 精灵变换
- 7.1 精灵旋转和缩放
- 7.1.1 2D变换
- 7.1.2 绘制变换了的精灵
- 7.1.3 Rotate_Scale_Demo程序
- 7.1.4 带有变换的动画
- 7.2 你所学到的
- 7.3 复习测验
- 7.4 自己动手
- 第8章 检测精灵碰撞
- 8.1 边界框碰撞检测
- 8.1.1 处理矩形
- 8.1.2 编写碰撞函数
- 8.1.3 新的精灵结构
- 8.1.4 为精灵的缩放进行调整
- 8.1.5 边界框演示程序
- 8.2 基于距离的碰撞检测
- 8.2.1 计算距离
- 8.2.2 编写距离计算的代码
- 8.2.3 测试的碰撞
- 8.3 你所学到的
- 8.4 复习测验
- 8.5 自己动手
- 第9章 打印文本
- 9.1 创建字体
- 9.1.1 字体描述符
- 9.1.2 创建字体对象
- 9.1.3 可重用的MakeFont函数
- 9.2 使用ID3DXFont打印文本
- 9.2.1 使用DrawText打印
- 9.2.2 文本折行
- 9.3 测试字体输出
- 9.4 你所学到的
- 9.5 复习测验
- 9.6 自己动手
- 第10章 卷动背景
- 10.1 卷动
- 10.1.1 背景和布景
- 10.1.2 从图片单元创建背景
- 10.1.3 基于图片单元的卷动
- 10.2 动态渲染的图片单元
- 10.2.1 图片单元地图
- 10.2.2 使用Mappy创建图片单元地图
- 10.2.3 Tile Dynamic Scroll项目
- 10.3 基于位图的卷动
- 10.3.1 基于位图的卷动理论
- 10.3.2 位图卷动演示
- 10.4 你所学到的
- 10.5 复习测验
- 10.6 自己动手
- 第11章 播放音频
- 11.1 使用DirectSound
- 11.1.1 初始化DirectSound
- 11.1.2 创建声音缓冲区
- 11.1.3 装载波形文件
- 11.1.4 播放声音
- 11.2 测试DirectSound
- 11.2.1 创建项目
- 11.2.2 修改"MyDirectX"文件
- 11.2.3 修改MyGame.cpp
- 11.3 你所学到的
- 11.4 复习测验
- 11.5 自己动手
- 第12章 学习3D渲染基础
- 12.1 3D编程简介
- 12.1.1 3D编程的关键组成部分
- 12.1.2 3D场景
- 12.1.3 转移到第三个轴
- 12.1.4 掌握3D管线
- 12.1.5 顶点缓冲区
- 12.1.6 渲染顶点缓冲区
- 12.1.7 创建四边形
- 12.2 带纹理的立方体示例
- 12.3 你所学到的
- 12.4 复习测验
- 12.5 自己动手
- 第13章 渲染3D模型文件
- 13.1 创建以及渲染后援网格
- 13.1.1 创建后援网格
- 13.1.2 渲染后援网格
- 13.1.3 编写着色器代码
- 13.1.4 Stock Mesh程序
- 13.2 装载并渲染模型文件
- 13.2.1 装载.X文件
- 13.2.2 渲染纹理模型
- 13.2.3 从内存中删除一个模型
- 13.2.4 Render Mesh程序
- 13.3 你所学到的
- 13.4 复习测验
- 13.5 自己动手
- 第14章 Anti-Virus(反病毒)游戏
- 14.1 Anti-Virus游戏
- 14.1.1 游戏玩法
- 14.1.2 游戏源代码
- 14.2 你所学到的
- 14.3 复习测验
- 14.4 自己动手
- 第3部分 附 录
- 附录A 配置Visual Studio 2013
- A.1 安装
- A.2 创建一个新的项目
- A.3 修改字符集设置
- A.4 修改VC 路径
- 附录B 各章测验答案