写了个战龙三国的地图拼图工具,小工具基于MFC开发,能查看地图,可能存在效率问题。

开发起因

地图是游戏开发里面的一个基本通用的功能,鉴于以前玩过战龙三国,所以很久以前下载了一个搭载环境放在电脑里,就是能开私服的那种,就想着拿它的地图栅格图片写一个拼图工具。可以熟悉下地图拼图的实现,虽然原理都懂,自己实现一个毕竟也是个经历。另外地图么,大概就是数据采集,编辑,格式转换,渲染,搜索,等等这些步骤,这是现实里面的地图开发所涉及的。那么游戏里面我没有涉及过,思索了下,大概也需要这些步骤,不过它的数据采集变成了地图设计,大概就是有个草图的概念,就是做成样子,数据编辑的话,需要一个地图编辑器,可以把相关的要素组合,格式转换应该不需要,渲染的话就是把地图编辑器生成的数据生成栅格图片,搜索寻路都是必须的了。蛮有意思的,游戏里面的地图和现实的地图有很多相通的地方,当然了,一个游戏地图是远不及现实地图复杂的。

演示截图
截个图演示下,相当于地图浏览控件。

关键知识

首先是关于MFC显示图片的问题,在MFC里要想在picture control里面显示图片,所用方法貌似并不直观。原先我想直接找相应的类似SetImage的方法就好了,但是没有,查找网络发现还是需要用DC来绘制。
第二点关键的知识点就是关于坐标转换,一个是世界坐标,一个是图块索引,还有一个是显示图片在覆盖图里面的相对坐标。这里面世界坐标和图块索引之间有个关键点,就是它俩的纵横坐标是相反的,还有一个是边界的情况需要注意,这里主要是左上角边界,最后一个是显示图片在覆盖图里的相对坐标通过使用左上角的世界坐标做差来计算。

后续问题

地图拼图就是处理坐标,知道和做出来真的差别还是蛮大的,原以为一个小时就能写出来,实际做起来却并不容易,所以一定要重实践。
作为自用的小工具倒也够用,问题的话,效率可能不够高,总觉的拖拉没有那么流畅的感觉,说不上来。原生MFC看着土里土气的,不够酷炫。