本篇主要提供RTWindwos游戏编程大师技巧-电子书的pdf版本下载,本电子书下载方式为百度网盘方式,点击以上按钮下单完成后即会通过邮件和网页的方式发货,有问题请联系邮箱ebook666@outlook.com
商品基本信息,请以下列介绍为准 | |
商品名称: | Windwos 游戏编程大师技巧-(第2版) |
作者: | [美]Andre LaMothe |
定价: | 108.0 |
出版社: | 人民邮电出版社 |
出版日期: | 2012-11-01 |
ISBN: | 9787115292483 |
印次: | |
版次: | 第2版 |
装帧: | |
开本: | 小16开 |
内容简介 | |
《Windows游戏编程大师技巧(第2版)》是游戏程序设计大师AndréLaMothe的代表作。 全书分为4个部分,共计15章和6个附录。作者循循善诱地从程序设计的角度介绍了在Windows环境行游戏开发所需的全部知识括Win32编程以及DirectX中所有主要组件括DirectDraw、DirectSound、DirectInput和DirectMusic)。书中还用单独的章节详细讲授了2D图形学和光栅化技术、游戏算法、多线程编程、文本游戏和解析、人工智能括模糊逻辑、神经网络和遗传算法)、物理建模(碰撞量传递和正学)及实时模拟等游戏程序开发中的关键技术。附录部分介绍了本书光盘的内容,如何安装DirectX,回顾了数学和三角学的基础知识、C++编程的基础知识,还给出了游戏编程资源以及ASCII表。 《Windows游戏编程大师技巧(第2版)》所附光盘上带有本书中所有程序的源代码、关于Direct3D和General3D的文章和在线书籍以及众多免费的素材。 《Windows游戏编程大师技巧(第2版)》适合想要学习Windows游戏编程的人员阅读,对于有一定经验的专业游戏开发人员,也具有较高的参考价值。 |
目录 | |
部分Windows编程基础 第1章学海无涯2 1.1历史一瞥2 1.2设计游戏5 1.3游戏类型5 1.4集思广益6 1.5设计文档和情节串联图板6 1.6使游戏具有趣味性7 1.7游戏的构成7 1.8常规游戏编程指导规范11 1.9使用工具14 1.10从准备到完成——使用编译器15 1.11示例:FreakOut17 1.12小结30 第2章Windows编程模型31 2.1Windows的起源31 2.1.1早期版本的Windows31 2.1.2Windows3.x32 2.1.3Windows9532 2.1.4Windows9833 2.1.5WindowsME33 2.1.6WindowsXP33 2.1.7WindowsNT/200033 2.1.8Windows基本架构:Win9X/NT34 2.2多任务和多线程34 2.2.1获取线程的信息34 2.2.2事件模型36 2.3按照微软风格编程:匈牙利符号表示法37 2.3.1变量的命名38 2.3.2函数的命名38 2.3.3类型和常量的命名38 2.3.4类的命名38 2.3.5参数的命名39 2.4世界上简单的Windows程序39 2.4.是从WinMain()开始40 2.4.2程序剖析41 2.4.3选择一个信息框42 2.5现实中的Windows应用程序44 2.6Windows类45 2.7注册Windows类50 2.8创建窗口50 2.9事件处理程序52 2.10主事件循环57 2.11产生一个实时事件循环60 2.12打开多个窗口61 2.13小结63 第3章高级Windows编程64 3.1使用资源64 3.1.1整合资源66 3.1.2使用图标资源66 3.1.3使用光标资源68 3.1.4创建字符串表资源71 3.1.5使用.WAV声音资源73 3.1.6使用编译器创建.RC文件76 3.2使用菜单77 3.2.1创建菜单77 3.2.2装载菜单79 3.2.3响应菜单事件消息82 3.3GDI(图形设备接口)简介86 3.3.1重拾WM_PAINT信息86 3.3.2显示基础和色彩(VideoDisyBasicsandColor)90 3.3.3RGB和调色板模式91 3.3.4基本文本显示92 3.4处理重要事件97 3.4.1Windows操作97 3.4.2处理键盘事件101 3.4.3处理鼠标事件107 3.5自行发送消息109 3.6小结111 第4章WindowsGDI、控件和灵感112 4.1高级GDI绘图112 4.1.1掀开图形设备描述表的盖头来112 4.1.2颜色、画笔和画刷113 4.1.3使用画笔114 4.1.4使用画刷116 4.2点、线面多边形和圆117 4.2.1绘制点118 4.2.2绘制线段119 4.2.3绘制矩形120 4.2.4绘制圆122 4.2.5绘制多边形123 4.3深入文本和字体124 4.4定时高于一切125 4.4.1WM_TIMER消息125 4.4.2低层定时操作127 4.5使用控件130 4.5.1按钮131 4.5.2向子控件发送消息133 4.6获取信息136 4.7T3D游戏控制台程序141 4.8小结145 第二部分DirectX和2D基础 第5章DirectX基础知识和令人生畏的COM148 5.1DirectX基础148 5.1.1HEL和HAL150 5.1.2更多的DirectX基础类151 5.2COM:是微软的杰作,还是魔鬼的杰作153 5.2.1COM对象究竟是什么154 5.2.2接口标识符和GUID的详细内容156 5.2.3创建一个类COM对象157 5.2.4COM的简要回顾158 5.2.5可运行的COM程序159 5.3应用DirectXCOM对象162 5.3.1COM和函数指针163 5.3.2创建和使用DirectX界面166 5.3.3接口查询167 5.4COM的前景168 5.5小结169 第6章初次邂逅DirectDraw170 6.1DirectDraw的接口170 6.1.1接口的特性170 6.1.2组合使用接口172 6.2创建DirectDraw对象173 6.2.1对DirectDra行错误处理173 6.2.2顺便提一下接口174 6.3与Windows协作177 6.4设置模式180 6.5色彩的奥秘182 6.6创建显示表面185 6.6.1创建一个主显示表面186 6.6.2关联调色板192 6.6.3绘制像素192 6.6.4清理资源201 6.7小结202 第7章高级DirectDraw和位图图形203 7.1使用高彩模式203 7.1.116位高彩模式204 7.1.2获取像素格式205 7.1.324/32位真彩色模式211 7.2双缓冲213 7.3表面动态217 7.4页面切换220 7.5显存块移动单元(Blitter)225 7.5.1使用Blitte行内存填充227 7.5.2从一个表面向另一个表面位图232 7.6基础裁剪知识235 7.6.1将像素按视口裁剪235 7.6.2位图裁剪技巧236 7.6.3使用IDirectDrawClippe行DirectDraw裁剪241 7.7使用位图245 7.7.1载入.BMP文件245 7.7.2使用位图250 7.7.3载入8位位图251 7.7.4载入16位位图252 7.7.5载入24位位图252 7.7.结位图253 7.8离屏表面253 7.8.1创建离屏表面253 7.8.2在离屏表面行Blitting254 7.8.3设置Blitter255 7.8.4色彩键255 7.8.5源色彩键256 7.8.6目标色彩键258 7.8.7使用Blitter(终于!)259 7.9位图的旋转和缩放260 7.10离散采样理论261 7.11色彩效果265 7.11.1256色模式下的色彩动画265 7.11.2256色模式下的色彩旋转270 7.11.3使用RGB模式的技巧271 7.12手动色彩变换及查询表272 7.13新的DirectX色彩和Gamma控制接口272 7.14将GDI和DirectX联用273 7.15DirectDraw的庐山真面目275 7.15.1主DirectDraw对象275 7.15.2关于表面277 7.15.3使用调色板277 7.16在窗口模式下使用DirectDraw278 7.17小结285 第8章矢量光栅化及2D变换286 8.1绘制线条286 8.1.1Bresenham算法287 8.1.2算法的速度优化292 8.2基本2D图形裁剪294 8.2.1利用点斜式计算两条直线的交点295 8.2.2利用一般式计算两条直线的交点297 8.2.3利用矩阵式计算两条直线的交点297 8.2.4裁剪直线299 8.2.5Cohen-Sutherland算法300 8.3线框多边形306 8.3.1多边形数据结构307 8.3.2多边形的绘制及裁剪308 8.42面里的变换310 8.4.移310 8.4.2旋转312 8.4.3缩放319 8.5矩阵引论320 8.5.1单位矩阵322 8.5.2矩阵加法322 8.5.3矩阵乘法323 8.5.4使用矩行变换325 8.移326 8.7缩放327 8.8旋转327 8.9填充实心多边形329 8.9.1三角形和四边形类型330 8.9.2绘制三角形和四边形332 8.9.3三角形解构详述334 8.9.4四边形光栅化的一般性讨论341 8.9.5多边形的三角化341 8.10多边形碰撞检测345 8.10.1度、边界球/圆345 8.10.2边界盒348 8.10.3含350 8.11深入定时和同步351 8.12卷轴和摇镜头353 8.12.1页面卷轴引擎353 8.12.2均铺(Tile)显示引擎354 8.12.3稀疏位铺显示引擎358 8.13伪3D等轴测引擎359 8.13.1方法1:基于单元,全二维359 8.13.2方法2:基于全屏,具有一些二维或三维的碰撞网络361 8.13.3方法3:采用全三维数算,使用一个固定的相机视角362 8.14T3DLIB1函数库363 8.14.1引擎架构363 8.14.2新的游戏编程控制台程序364 8.14.3基本定义370 8.14.4可用的宏371 8.14.5数据类型和结构372 8.14.6全局定义375 8.14.7DirectDraw接口376 8.14.82D多边形函数379 8.14.92D基本图元函数381 8.14.10数学和误差函数385 8.14.11位图函数386 8.14.12调色板函数390 8.14.13实用工具函数392 8.15BOB引擎393 8.16小结400 第9章DirectInput输入和力反馈401 9.1输入循环401 9.2DirectInput序曲402 9.2.1DirectInput组件404 9.2.2设置DirectInput的一般步骤404 9.2.3数据采集模式405 9.2.4创建主DirectInput对象406 9.2.5101键盘407 9.2.6读数据过程中的问题:重获取413 9.2.7捕捉鼠标414 9.2.8使用游戏杆418 9.2.9将输入消息化428 9.3力反馈431 9.3.1力反馈的物理原理431 9.3.2设置力反馈431 9.3.3力反馈演示程序432 9.4编写一个广泛适用的输入系统:T3DLIB2.CPP433 9.5小结437 第10章用DirectSound和DirectMusic演奏乐曲438 10.1在PC上对声音编程438 10.2从此有了声音…439 10.3数码声音与MIDI比较——音质好且存储省441 10.3.1数码声音——从“位”开始442 10.3.2合成声音与MIDI443 10.3.3MIDI概述444 10.4发声硬件444 10.4.1波表合成444 10.4.2波导合成445 10.5数码录音:设备和技术445 10.5.1录制声音446 10.5.2处理声音446 10.6DirectSound中的麦克风446 10.7初始化DirectSound448 10.7.1理解协作等级449 10.7.2设定协作等级450 10.8主声音缓冲区与辅助声音缓冲区450 10.8.1使用辅助缓冲区450 10.8.2创建辅助声音缓冲区451 10.8.3把数据写入辅助声音缓冲区453 10.9渲染声音454 10.9.1播放声音455 10.9.2停止播放455 10.9.3控制音量455 10.9.4调整频率456 10.9.5调整声衡456 10.10用DirectSound反馈信息456 10.11从磁盘中读取声音数据458 10.11.1.WAV文件格式458 10.11.2读取.WAV文件458 10.12DirectMusic:伟大的试验462 10.13DirectMusic的体系结构463 10.14初始化DirectMusic464 10.14.1初始化COM464 10.14.2创建一个演奏对象464 10.14.3给演奏对象增加端口465 10.15加载一个MIDI段466 10.15.1创建一个加载程序466 10.15.2加载MIDI文件466 10.16操作MIDI段469 10.16.1播放一个MIDI段469 10.16.2停止一个MIDI段469 10.16.3检查MIDI段的状态469 10.16.4释放一个MIDI段470 10.16.5关闭DirectMusic470 10.16.6一些DirectMusic的实例470 10.17T3DLIB3声音和乐曲库470 10.17.1头文件471 10.17.2类型471 10.17.3全局变量472 10.17.4DirectSoundAPI封装472 10.17.5DirectMusicAPI封装476 10.18小结478 第三部分核心游戏编程 第11章算法、数据结构、内存管理和多线程480 11.1数据结构480 11.1.1静态结构和数组480 11.1.2链表481 11.2算法分析487 11.3递归489 11.4树结构490 11.4.1建立二分查找树(BST)493 11.4.2搜索BST495 11.5优化理论497 11.5.1运用你的头脑497 11.5.2数学技巧498 11.5.3定点运算499 11.5.4循环体展开502 11.5.5查找表502 11.5.6汇编语言503 11.6制作演示504 11.6.1预先记录的演示504 11.6.2由人工智能控制的演示505 11.7保存游戏的手段505 11.8实现多人游戏506 11.8.1轮流506 11.8.2分屏506 11.9多线程编程技术507 11.9.1多线程编程的术语508 11.9.2为何要在游戏中使用线程509 11.9.3取得一个线程510 11.9.4线程间的消息传递516 11.9.5等待合适时机520 11.9.6多线程和DirectX526 11.9.7高级多线程编程526 10.10小结527 第12章人工智能528 12.1人工智能初步528 12.2确定性AI算法529 12.2.1随机运动530 12.2.2跟踪算法531 12.2.3反跟踪:闪避算法534 12.3模式以及基本控制脚本的编写535 12.3.1基本模式535 12.3.2具备条件逻辑处理的模式539 12.4行为状态系统建模540 12.4.1基本状态机541 12.4.2加入更多表现个性的行为544 12.5用软件对记忆和学行建模546 12.6计划树和决策树548 12.6.1计划编程549 12.6.2实现真正的计划生成器552 12.7寻路553 12.7.1试探法(TrialandError)554 12.7.2轮廓跟踪555 12.7.3碰撞规避跟踪555 12.7.4路点寻路556 12.7.5一个赛车例子559 12.7.6可靠的寻路559 12.8高级AI脚本563 12.8.1设计脚本语言563 12.8.2使用C/C++编译器565 12.9人工神经网络568 12.10遗传算法571 12.11模糊逻辑573 12.11.1普通集合论573 12.11.2模糊集合理论574 12.11.3模糊语言变量及其规则575 12.11.4模糊流形与成员关系577 12.11.5模糊关联矩阵581 12.11.6用模糊化的输入处理FAM583 12.11.7暖融融589 12.12为游戏创造真正的AI589 12.13小结589 第13章基本物理建模590 13.1基本物理学定律591 13.1.1质量(m)591 13.1.2时间(t)591 13.1.3位置(s)592 13.1.4速率(v)593 13.1.5加速度(a)594 13.1.6力(F)597 13.1.7多维空间中的力598 13.1.8动量(P)598 13.2线性动量的物理性质:守恒与传递599 13.3模拟万有引力效果601 13.3.1模拟重力井603 13.3.2模拟炮弹弹道604 13.4讨厌的摩擦力607 13.4.1摩擦基本概念607 13.4.2斜面上的摩擦力(高级)609 13.5基本的特殊碰撞反应611 13.5.1简单的x,y反弹物理611 13.5.2计算任意方向上面碰撞反应614 13.5.3矢量反射示例616 13.5.4线段的交点617 13.6实际2D物体间的碰撞响应(高级)621 13.7解决n-t坐标系统624 13.8简单运动学630 13.8.1求解正向运动学问题631 13.8.2解决学问题633 13.9粒子系统634 13.9.1每颗粒子都需要的东西635 13.9.2设计粒子引擎635 13.9.3粒子引擎软件636 13.9.4产生初始条件640 13.9.5整合微粒系统642 13.10创建游戏的物理模型643 13.10.1物理建模的数据结构643 13.10.2基于帧的模拟与基于时间的模拟643 13.11小结645 第14章文字时代646 14.1什么是文字游戏647 14.2文字游戏如何工作647 14.3从外部世界获得输入650 14.4语言分析和解析651 14.4.1词法分析655 14.4.2句法分析660 14.4.3语义分析662 14.5组成游戏世界663 14.5.1表示场景663 14.5.2放置物体665 14.5.3让事情发生666 14.5.4自由移动666 14.5.5物品系统666 14.6实现视觉、听觉和嗅觉666 14.6.1听觉667 14.6.2嗅觉668 14.6.3视觉668 14.7实时响应670 14.8错误处理671 14.9造访ShadowLand671 14.10ShadowLand中使用的语言671 14.11编译和运行ShadowLand673 14.12小结674 第15章综合运用675 15.1Outpost的设计初稿675 15.1.1游戏背景675 15.1.2设计游戏玩法676 15.2用于编写游戏的工具676 15.3游戏场景:在太空中卷动677 15.4玩家控制的飞船:鬼怪号678 15.5小行星带680 15.6敌人681 15.6.1边哨(Outpost)681 15.6.2捕食者太空雷682 15.6.3战舰682 15.7“宝物”685 15.8HUD685 15.9粒子系统688 15.10玩游戏689 15.11编译Outpost689 15.12结束语690 第四部分附录 附录A光盘内容简介694 附录B安装DirectX和使用C/C++编译器696 附录C数学和三角学回顾699 附录DC++入门709 附录E游戏编程资源727 附录FASCII表731 |
媒体评论 | |
André LaMothe编著的《Windows游戏编程大师技巧(第2版)》假定你有编程的基础。如果你还不懂如何编写C语言程序,那么阅读本书的某些部分可能会使你感到相当困惑。但让C语言程序员感到不适应的是,本书中又有一定的示例程序是用C++写的。不过别担心,在我要做任何古怪的事情以前,我都会提醒你。或许,如果你需要关于C++程序设计的速成课程,本书的附录D可作为一份C+十入门读本来使用。基本上本书只在用到DireCtX的场合里才使用C++。 |
作者简介 | |
本书作者Andre LaMothe有25年的计算行业从业经验,拥有数学、计算机科学和电子工程等学位,是20岁时就在NASA做研究工作的少数几人之一。作者的著作以及参与策划的套系,都成为游戏设计和开发领域的经典。 |