2D游戏编程笔记..docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2D游戏编程笔记.

?2D游戏编程笔记-1 here 本人同意他人对我的文章引用,但请在引用时注明出处,谢谢.作者:蒋志强 2D 游戏开发与3D相比相对简单,在主要的流行平台都提供了相应的API支持其开发.比如对本地windows原生程序,系统提供了GDI;对windows 平台上更高效率的需求,以COM的形式提供DirectDraw;在托管的.NET环境下提供了GDI+;JAVA也有相应的支持2D图形的包等.不同的 API接口在调用方法上虽然有所差异,但思想和处理方法都是类似,所以熟练的使用了一种以后,可以很容易的举一返三. 在我的该系列笔记中, 介绍的是DirectDraw这种编程接口.DirectDraw是microsoft推出的DirectX开发包中的一个组件,专门用于提供高效的2D 图象编程支持.从DirectX8的版本开始,DirectDraw就没有被更新了,在新的DirectX版本将用于2D的DirectDraw组件和用 于3D的Direct3D组件合并为了Graphics组件,将2D和3D图形处理合并.对于3D图形图象处理,我们只要固定观察角度,那么就等同于在处 理2D图象,这也是Graphics替代D3D和DirectDraw的原因,但是以3D的方法来处理2D的图象,也会让本来可以更简单的操作人为变得复 杂.所以我仍然选择DirectDraw编程接口. 我必须先说一下COM,因为DirectX的组件都是以COM组件来实现的.我们的目的 不是要自己编写COM组件,所以我们只需要有个大概的了解就,就可以理解DirectDraw组件的工作方式了.(当然,如果你愿意对COM做更深入的学 习也是会对你很有好处的.)COM是组件对象模型(Component Object Model)的意思,它是microsoft定义的一种进行组件编写的规范,按照COM规范编写的组件就叫做COM组件.组件是相对独立的软件可复用的模 块,有按照不同组件规范编写的组件,COM组件只是其中的一种类型.COM组件用C++实现的,实际上一个COM组件在内存中就是一个C++的类,但 COM组件不一定必须用C++语言来编写,也可以是其他的语言(比如Delphi,VB),只要在内存中与C++编写的组件的类相同就可以.COM组件对 外通过接口提供各种方法的调用.DirectDraw是COM组件,我们对它的使用,也是通过它提供的接口中的方法调用.每个新版本的COM组件,都必须 实现以前旧版本COM组件的接口,所以在新的DirectX9中,我们仍然可以调用老的DirectDraw7组件. 我们先看一下,DirectDraw在windows程序体系结构中的工作位置,如下图所示: 最 上面是我们的win32应用程序,我们进行2D图象处理可以可以直接在程序中调用GDI,GDI再通过DDI,也就是显卡驱动程序调用显卡硬件进行绘图. 另外一种方式是通过DirectDraw组件提供的接口中的方法来进行绘图.从图中我们可以看到DirectDraw下面既有HEL层也有HAL层. HAL层是硬件抽象层,在microsoft推出DX后,要求显卡硬件制造商要遵守规范,这就是DirectX规范,我们现在在市面上看到的显卡都标有支 持DirectX9的说明,向上对操作系统提供相同的功能实现.由于支持DirectX9规范的显卡,都实现了DirectX所要求的功能调用(当然同样 支持DirectX9规范的高档的显卡实现同样的功能会比入门显卡快),所以可以通过相同的硬件抽象层HAL来调用显卡的功能,而不用关心显卡的GPU是 Nvidia的还是ATI的.还有一个叫做HEL的硬件仿真层,这是由于也许游戏程序中使用了DirectX9组件必威体育精装版接口中的新的方法调用,但你机器上 的显卡比较老,只能支持DirectX8的规范,所以你的显卡的GPU无法完成该方法调用,这个时候就可以通过HEL让CPU来通过软件的方式来实现该调 用,而不用让GPU去做它根本没有能力做的事情.当然由CPU通过软件计算会比通过GPU硬件实现要慢很多,但是我们获得的好处显而易见,游戏程序可以在 老的机器上跑.通过HEL和HAL层的体系结构,实现了程序的硬件无关,这十分的有意义. 基础的知识概念介绍得差不多了,下一次我们要对编 程环境进行配置,并完成一个真正的DirectDraw程序,我假定我们都有windows编程的基础,如果没有,建议你参考一下Petzold的那本 <windows程序设计>.很令人兴奋吧,突然发现已经很晚了,我也该睡觉了,明天还要上班真是可怜.成都的天气实在是闷热,我去洗澡了, ByeBye. ?2D游戏编程笔记-2 本人同意他人对我的文章引用,但请在引用时注明出处,谢谢.作者:蒋志强 要 进行DirectX的程序开发,

文档评论(0)

gangshou + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档