- 热门文章:
- · 未来游戏发展趋向
- · 纹理映射:JeffMolofee(…
- · 向3D进军:JeffMolofee(…
- · 看骂国产游戏、骂国内制…
- · 五子棋的核心算法
- · 拼图游戏的算法
- · 上楼梯算法的java实现
- · 杨辉三角形
- · 水仙花数
- · 刘徽《九章算术》中的勾股数
- · 图像分割中阈值的自动选取的研究及其算法实现
- · 【C++/OOP】(侯捷著)
上一篇:隨筆]遊戲程式設計初學者… >>
特效天地——位图卷轴
废话少说,先看看程序运行后的效果:(如果没有出现,请耐心的稍等片刻)
请各位原谅我的时间有限,编程的细节我就不多讲了,只介绍一下大致的实现方法。
在DirectX中,页面(Surface)是最基本的对象,我们用它来装载位图,页面有很多种,有:
- 主页面(Primary Surface):代表我们可见的显示器屏幕
- 后台缓存(Back Buffer):换页用的另一个后备页面,不可见
- 离屏页面(Off Screen Surface):用来储存图象的页面,不可见
这个程序中三种页面都用到了。首先将两幅图象:一幅武士、一幅背景分别载入到两个离屏页面上。请注意,武士的图片上我们使用了源关键色。
- 源关键色:页面上被假设为透明色的颜色,这种颜色在Blit中作为透明
如果你仔细观察一下武士的图片,就会发现武士图象的背景上是绿色,这就是我所使用的源关键色。
然后的工作就是设置一个定时器,每隔一定的时间让屏幕进行一次换页,在这个过程中,需要分别将两幅离屏页面中的位图Blit到后台缓存上,这个时候,需要计算一些坐标数据,这些逻辑方面的问题我就不多说了,因为这些++--的东西,一说就糊涂,你还是自己去思考吧,总之,你需要控制好Blit的源和目标矩形。因为这个程序我使用的是全屏模式,所以使用了换页操作。
- 换页:将后台缓存与前台缓存(主页面)的指针进行交换,使屏幕上的画面在瞬间更新(因为换页是硬件完成的,非常快速,所用的时间与刷新率是同样的数量级),所以根本就观察不到闪烁的现象。
好了,这个程序大致就是这样的了,它是在VC 5.0环境下,直接利用DirectDraw编写的,没有使用CDX等包装类库。
这里附带可执行文件和源代码,内有比较详细的注释,下载MovePic.zip(190k)。如果有问题,请一定告诉我哟。
下一篇:未来游戏发展趋向 >>
相关文章:
- · 《Borland传奇》序-李维
- · 工作不努力,罚你去印度…
- · 《多收了三五斗》大学毕…
- · 停止思考是一种堕落--…
- · 夜幕下的程序员
- · 《各大IT公司薪金大曝光…
- · 我国加速城市有线电视数字化进程
- · 石家庄市政府“网站集群”全面升级
- · 农垦系统全面信息化启动
- · 推广“绿色电子”天津率先行动
- · 江西省将实行信息化工程监理体制
- · 美政府电脑系统遭少年黑客攻击
- · 交通运输信息化本周首次亮相亚洲
- · 神州数码20年扎根电子政务
- · 电子政务最好的是加拿大
- · 瞄准“数字莆田”建设
- · 我的门户网站:Yahoo
- · MicrosoftOffice-坚持还…
- · B/S模式安全性探讨
- · 分析网上销售软件是否能…
- · 80/20定律在客户关系管理…
- · 中国到底需不需要CRM
- · 一步一步了解CRM(概念篇)
- · 中国网络公司谁在盈利
- · 王志东预言中国门户网站…
- · CRM中的订单系统
- · 软件开发中项目需求管理简述
- · 跳出程序员的视界 感悟软件测试
- · 杂谈:项目管理的是与非
- · 对项目开发中几种测试类型的理解
- · 初学者入门:软件测试从零开始
- · EA与Rose UML建模工具比较
- · Java手机程序设计入门电…
- · UML谁的硬伤?
- · 《程序员》高展专栏——…
- · 软件工程师的年终总结
- · 企业品牌营销秘诀
- · 企业信息化不仅仅是“无纸化办公”
