HPF坦克大战地图编辑器功能及代码说明

HPF坦克大战地图编辑器功能以及代码说明1程序结构说明:1.MainFrm.cpp:主框架类,在此文件中的PreCreateWindow()方法中,添加了对窗口大小进行初始化的语句。2.Tankmap.cpp:主应用程序类,在此文件中的initinstanse()方法里,添加语句,使窗口固定大小,不能最大化和最小化,也不能通过拖拉来改变边框大小。3.MapSaveLoad.h:定义了地图存储加载操作类,用来进行编辑区域的地图和数据文件的转换。进行基本的保存和加载方法,并且申明了标记变量和地图编辑元素记录数组。2staticintsaveMap[13][13];//将地图编辑区域分成13*13的区域,该数组为保存//地图的二维数组,每个元素保存当前位置保存的图//片编号;默认为0,表示无地图在此处;staticintisSaveOrLoad;//标记变量,当值1为时,表示当前状态为刚//保存文件或刚刚打开文件;在后续的处理中,//这个值将会非常有用,初始化为0;staticboolSave(CFile*);//将当前操作区域的地图编辑按照二维数组来//进行记录,记录值为代表当前贴图的图片编号。staticboolLoad(CFile*);//加载数据文件;读入按照一定格式进行记录的数据文件,将读入值//记录到二维数组当中,在OnDraw()函数执行绘图的时候,会根据二//维数组的值,贴上相应图片,完成打开操作。4.MapSaveLoad.cpp:地图操作类的实现,定义在相应头文件中声明的各个变量和方法。5.TankMapDoc.cpp:在此文件的OnNewDocunment()方法中,进行了【新建】操作的执行代码,将地3图数组清为零,并且将表记值isSaveOrLoad的值设置为1,表示刚刚进行了文件操作。在执行OnDraw()函数的时候,会将地图编辑区域改变成一个除了老巢贴图外,没有任何其他贴图的背景。在此文件的Serialize()方法中,添加代码来执行【保存】,【另存为】,【加载】等操作,通过判断当前CArchive&的变量ar来决定进行何种操作,如果ar.isStoring,则表明现在执行的是保存操作,执行MapSaveLoad类的Save()方法,进行保存,否则,执行MapSaveLoad类的Load()方法,进行打开文件操作。6.TankMapView.cpp:此文件为该程序执行的主要文件,基本所有的画图函数都在此文件中。通过对OnDraw()方法的调用,来绘图。添加的变量有:intmapNum=14;//全局变量;//标示当前选定的地形元素的图片编号;//初始化为14,没有代表任何图片;//(因为工具箱中的背景图片的编号为14)intmap[169][2];//代表地图坐标的数组,每个元素的//第一个变量代表该网格的横坐标;//第二个坐标代表该网格的纵坐标;//地图网格排序按照行来顺序编号;inttoolBox[14][2];4//代表工具箱坐标的数组,每个元素的//第一个变量代表该网格的横坐标;//第二个变量代表该网格的纵坐标;//工具箱网格排序按照行来顺序编写;intx=-1;//当前鼠标位置横坐标;//初始化为-1,表示程序刚刚开始执行;inty=-1;//当前鼠标位置纵坐标;//初始化为-1,表示程序刚刚开始执行;intinit=0;//数组初始化标记,若等于1,则数组已初始化//若等于零,则数组未初始化;初始值为零;//该变量是为程序逻辑而设定的判断变量;//虽然整个程序运行中只改变1次,但是,其对//绘图逻辑有很重要的作用//以免几个普通数组被反复初始化浪费效率;//避免SaveMap[][]数组被反复初始化,造成【新建】的效果。添加的函数有:boolInitArray();//function_1:初始化全局数组,//将编辑器,包括地图部分和工具箱部分的网格数组初始化;//并且将用于保存和加载的二维地图数组初始化为0;boolDrawHome(CDC*pdc);//function_2:画出地图上的老巢,5//这一块地图的老鹰图片是默认的,//是不可修改的,不可覆盖的;boolDrawToolBox(CDC*pdc);//function_3:画出工具箱网格,//并且绘制出在工具箱下面的选定元素展示框网格;//函数中用到的数据都是作者进行多次计算或实践后得出。//因此数字值采用硬编码的方式进行编写。boolDrawToolMap(CDC*pdc);//function_4:画出工具箱中的待选择元素//将14种地图元素(包括背景)绘制到相应的工具箱中的指定位置。boolDrawMap(CDC*pdc);//function_5:绘制地图区域的网格,//13行13列,每个网格像素。boolChooseTool(CDC*pdc);/function_6:选择工具箱中地图元素,//根据鼠标坐标来...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供参考,付费前请自行鉴别。
3、如文档内容存在侵犯商业秘密、侵犯著作权等,请点击“举报”。

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

客服邮箱:

biganzikefu@outlook.com

所有的文档都被视为“模板”,用于写作参考,下载前须认真查看,确认无误后再购买;

文档大部份都是可以预览的,笔杆子文库无法对文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;

文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为依据;

如果您还有什么不清楚的或需要我们协助,可以联系客服邮箱:

biganzikefu@outlook.com

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

笔杆子文秘
机构认证
内容提供者

为您提供优质文档,供您参考!

确认删除?