摘要:《舰艇游戏中的demon如何计算目标航速》
熟悉舰艇游戏的朋友们相信对demon并不会陌生。demon是舰艇中的重要设备,它是demodulated noise的缩写。通过该设备你可以获取目标的航速和目标推进器的螺旋桨叶片数,这些数据都是十分重要的。下面的这张图便是游戏《688(i) hunter-killer》中的demon设备。其中有三个重要的数据:cursor frequen......
摘要:a quick review of why mobile gaming is different from traditional gaming:• low budget• small development team• technology is within reason and is manageable, no need for special equipme......
《学VC、编游戏》重点算法解疑·穿越丛林
对mlmap()与movesmap()的理解
有没有感觉到我的系列文档的每一篇都是在讲二个相关或相似的函数,这是一种巧合,作者的书中每篇都恰好用到了二个这样的函数,这二个函数可以涵盖那一章的整体的知识体系,对那一章的理解只要理解了这二个函数就差不多了.mlmap()顾名思义就是"move & link map",即"移动拼接地",movesmap()也带有地图移动的意思,可见这二个函数的作用共同构成了最后的"场景卷动"的效果,具体整个场景的卷动效果是如何通过这二个函数达成的呢?下面会谈到,我们把整个暂存区bkdc1(要明确这个暂存区不是静态的,而是动态的,因为在"显示区"的对象所在的memdc与地面所在dc会在一个时间间隔内不停地对它进行刷新,刷新就是dc之间的对拷,就是在initdlg()中的ontimer()函数中,模拟想像一下这二个过程吧,这个刷新过程是一个叠加刷新的过程,同样的,memdc与地面所在的dc也不是静态的)看成是"场景",但是它又不同于"显示区",显示区就是作者在书中提到的"屏幕"的说法(这个屏幕不是指计算机的屏幕),"显示区"显然比"场景"小得多,场景可以是12*12,但"显示区"永远只是主程序界面最左上的那个大方框那么大,在"广阔天地"中我们谈到,场景=出场的对象+卷动中的地面,其实更精确的说法是,场景=出场的对象中的在显示区的那一部分+卷动中的地面,于是整个发生在场景上的显示变化都是由对象的显示变化与不断以移动拼接方式显示的(下面在分析movesmap()时会谈到,为什么不是mlmap()呢,不是说"移动拼接"吗?下面会解释到)地面背景dc构成的,一般都把地面(或者说地面所在dc)叫做"背景",而把对象(或者说memdc)叫做"前景",我们在前面的"狩猎谋生"的ontimer()讲解多对象的显示setobj()中已经把对象由memdc贴到bkdc1的过程讲完了,现在就只有地面所在dc贴到bkdc1的过程没有讲,本章就是要讲地面所在dc贴到bkdc1的过程,只有这二者都完成了,即前景与背景都贴到暂存区bkdc1中了,程序再在一个时间周期中一次性地将它们贴到dc_mdc中,即"显示区"中,也可以说是"屏幕"(可见这个屏幕只是整个计算机屏幕的一部...
下一页 摘要:每一个关卡地图都包括二个场景文件,出场对象数据文件.dat和地图障碍模型文件.map,如1*1.dat,1*1.map,场景文件是用loadmap()来读取的,它的程序作用是用来初始化地图场景,这是大体上的说法,细一点说,它的最终的程序作用是给要出场的各个man[i]的所有分量赋值,.map障碍文件的读取loadza()为a*所用,是第七章以后的内容,(书中提到的场景一词就是指.dat中定义的rs......