游戏开发

本类阅读TOP10

·DirectX 9.0 SDK 开发包下载(April 2005)
·完成端口的深入理解及一种变态用法
·初学者的福音:游戏开发新手入门指南
·linux下编写OpenGL程序的一些准备工作
·《学VC、编游戏》重点算法解疑·快一点
·Windows的消息机制与消息重定向技术
·《魔兽世界》的寻路体系和作弊原理分析
·《学VC、编游戏》重点算法解疑·再快一点
·5月新开传奇私服|6月新开传奇私服|传奇私服|新区
·《学VC、编游戏》重点算法解疑·狩猎谋生

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
特效天地——位图卷轴

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站


废话少说,先看看程序运行后的效果:man.gif (26498 bytes)(如果没有出现,请耐心的稍等片刻)

请各位原谅我的时间有限,编程的细节我就不多讲了,只介绍一下大致的实现方法。

在DirectX中,页面(Surface)是最基本的对象,我们用它来装载位图,页面有很多种,有:

  • 主页面(Primary Surface):代表我们可见的显示器屏幕
  • 后台缓存(Back Buffer):换页用的另一个后备页面,不可见
  • 离屏页面(Off Screen Surface):用来储存图象的页面,不可见

这个程序中三种页面都用到了。首先将两幅图象:一幅武士、一幅背景分别载入到两个离屏页面上。请注意,武士的图片上我们使用了源关键色。

  • 源关键色:页面上被假设为透明色的颜色,这种颜色在Blit中作为透明

如果你仔细观察一下武士的图片,就会发现武士图象的背景上是绿色,这就是我所使用的源关键色。

然后的工作就是设置一个定时器,每隔一定的时间让屏幕进行一次换页,在这个过程中,需要分别将两幅离屏页面中的位图Blit到后台缓存上,这个时候,需要计算一些坐标数据,这些逻辑方面的问题我就不多说了,因为这些++--的东西,一说就糊涂,你还是自己去思考吧,总之,你需要控制好Blit的源和目标矩形。因为这个程序我使用的是全屏模式,所以使用了换页操作。

  • 换页:将后台缓存与前台缓存(主页面)的指针进行交换,使屏幕上的画面在瞬间更新(因为换页是硬件完成的,非常快速,所用的时间与刷新率是同样的数量级),所以根本就观察不到闪烁的现象。

好了,这个程序大致就是这样的了,它是在VC 5.0环境下,直接利用DirectDraw编写的,没有使用CDX等包装类库。

这里附带可执行文件和源代码,内有比较详细的注释,下载MovePic.zip(190k)。如果有问题,请一定告诉我哟。




相关文章

相关软件




月光软件程序下载编程文档电脑教程网站设计网址导航网络文学游戏天地幽默笑话生活休闲写作范文安妮宝贝
电脑技术编程开发网络专区谈天说地情感世界游戏元素分类游戏热门游戏体育运动手机专区业余爱好影视沙龙
音乐天地数码广场教育园地科学大观古今纵横谈股论金人文艺术医学保健动漫图酷二手专区地方风情各行各业

月光软件站·版权所有