>重点算法解疑·广阔天地

原创 2006年06月14日 16:55:00
每一个关卡地图都包括二个场景文件,出场对象数据文件.dat和地图障碍模型文件.map,如1*1.dat,1*1.map,场景文件是用LoadMap()来读取的,它的程序作用是用来初始化地图场景,这是大体上的说法,细一点说,它的最终的程序作用是给要出场的各个man[i]的所有分量赋值,.map障碍文件的读取LoadZa()为A*所用,是第七章以后的内容,(书中提到的场景一词就是指.dat中定义的Rs个对象man[i]+卷动中的地面背景,为什么这样说呢,因为.dat中同时定义有地面背景和各个man[i],至于"卷动中的地图"的说法你看我的系列文档的"穿越众林"篇就清楚了,相比之下,.map才是真正的地图数据所在,才是真正的地图主体,因为它指明了地图最本质的特征,即哪里可以去哪里不能去,而.dat只是出场的各个man[i]数据所在,是场景主体,如人或兽,静物等以及它们的特征值,按照OPP用对象和类来描述客观世界的做法,类是一个特殊的数据结构体,它跟普通的数据结构如这里的man[i]不一样,在C++中,类的定义形式跟构造体很为相似,类的概念的提出就是参照构造体来的,但是类在OPP的技术规范里的发展已远远超出了构造体的意义,到后来就是二个在本质上有区别的东西了,假设这本书里的man[i]是以类的形式被定义和以它的实例被构造的,而不是以普通的数据结构形成出现的,那么man[i]在现实中的表示就是一个活生生的人物对象(或者说人物形象),它们各自的属性分量决定了它们的外表,它们的成员函数决定了它们的动作行为,而它在计算机内存中的表示只是man[i]对应的内存块,这个实体的内存块由man[i]的各个分量,也就是变量构成,我们知道变量就是内存单元,去学习OPP的对象模型学吧)由于.dat是文件方式的文件,可以手写也可以用地图编辑器达成)注意:人始终是每个场景第一个出场的man[i],此时man[i]=man[0],LoadMap()是如何通过读取对应的.dat来达到初始化所有的man[i]的各个属性值的呢(即man[i]结构的各个分量如fw,js等)?这个函数用了标准的从一个.txt文件中读取数据到变量的方法(.dat也是.txt文件),这个方法在66页读取偏移值时也用过,这里有大量的数据要读,Rs越多对应的出场对象也就越多,man[i]结构分量初始化的工作量也就越大,在MFC中,.txt文件的读写存在一个"读写头"的概念,由于每个man[i]的特征值都有很多(97页),要对Rs个man[i]的每个分量都通过这个函数赋于初始值(这些初始值是变量,以后可能会发生变化),读取.dat文件中的对应数据只完成了部分特征值的赋于,另外的就要靠程序来赋于,再来谈"读写头",读写头首先在第4行,第5行转到第10行,在一个循环里(实际上LoadMap()对各个man[i]的各个属性赋值的工作是由这个循环体和循环体外的代码这二部分来共同完成的,前面说到的读取.dat只完成了部分属性值的赋于,实际上.dat文件的读取就是由这个循环完成的,.dat文件只给出了大部分的属性值,另外的属性值就由循环体外的代码来手工赋于)给各个对象(man[0]~man[rs])的jisu,lb,js,p,xix,yiy赋值..

>重点算法解疑·狩猎谋生

153页的lookit(int i)的lookit我想破了头也不知道它是什么意思,Cqtml真是可爱,也不知道他是怎么想到这个lookit这个词的,ZJDZ我倒知道是"主角动作",可ZJDW呢,是"动...
  • bearfirstblog
  • bearfirstblog
  • 2006年06月14日 16:56
  • 563

>重点算法解疑·穿越丛林

对mlmap()和movesmap()的理解有没有感觉到我的系列文档的每一篇都是在讲二个相关或相似的函数,这是一种巧合,作者的书中每篇都恰好用到了二个这样的函数,这二个函数可以涵盖那一章的整体的知识体...
  • bearfirstblog
  • bearfirstblog
  • 2006年06月14日 16:54
  • 460

>重点算法解疑系列文档·脚踏实地

对这篇文章的理解应该在熟读我的系列文档的"走四方"篇之后进行,本章的任务之一是在活动对象的显示中加入A*寻路,这是本章的任务1,另外,使动物都活动起来(走动或跑动一段路,当你看完本文的时候你就会知道了...
  • bearfirstblog
  • bearfirstblog
  • 2006年06月14日 16:53
  • 508

>重点算法解疑系列文档·快一点

 我是以一个初学者的身份来看这本书的,这个我在前言中就说过了,因此对本章的理解我有点举步维艰,因为本章有很多不常见的API,如游览文件夹,把图片读到特定的内存数据区,这些API都是我作为一个初学者首次...
  • bearfirstblog
  • bearfirstblog
  • 2006年06月14日 16:59
  • 567

>重点算法解疑系列文档·再快一点

 由于本章对读者的可接受能力的考虑,对DX的引入作了二点处理,1:从MFC中引入DX,2:使用DX的窗口模式,学习中应该着重注意的是原GDI贴图函数向DX下的贴图函数的改写,这些很容易理解,勿须再谈....
  • bearfirstblog
  • bearfirstblog
  • 2006年06月14日 16:58
  • 497

《学VC 编游戏》重点算法解疑·走四方

对manmove()和bianfw()的理解 manmove()实际上实现的作用是计算man[i](i的值由manmove()的入口参数i的当前值取得)的man[i].xix,man[i],yiy当前...
  • bearfirstblog
  • bearfirstblog
  • 2006年06月14日 16:52
  • 726

Matlab疑难解答

Matlab 疑难解答1、MATLAB 有几千个函数,而且很多函数有多种调用方式,怎样才能比较快的学习掌握?答:MATLAB 函数众多,要想全面掌握 MATLAB,非常困难,即使只掌握 MATLAB ...
  • bittermelon
  • bittermelon
  • 2007年11月26日 20:39
  • 1865

数据结构+算法系列二: 所有知识点的梳理(持续更新中)

做事儿时坚持固然重要,
  • sangyongjia
  • sangyongjia
  • 2014年06月15日 11:31
  • 1832

学VC 编游戏》重点算法解疑·前言

    写了这么多了,合计起来有7篇文章,也有10000左右的纯汉字,当初提笔的初衷之一是我考虑这个系列或多或少地对坛友们会有些用,第二是想体现一下自己的个人价值(说得恶心请原谅),但愿对你们能有用,...
  • bearfirstblog
  • bearfirstblog
  • 2006年06月14日 16:50
  • 703

数据结构与算法的基本概念

整理一下数据结构和算法的基本概念: 有序数组是按关键字升序或降序排列的,可以使用二分法查找 有序数组的查找速度比无序数组快 有序数组在插入操作中由于所有靠后的数据都需要移动以腾开空间,使用速度较慢 有...
  • lyy98521
  • lyy98521
  • 2015年02月26日 16:39
  • 646
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:>重点算法解疑·广阔天地
举报原因:
原因补充:

(最多只允许输入30个字)