Tiled Map Editor:AutoMapping源码分析(一)


tiled的图形化界面是通过qt实现的,在看源码的时候需要搭配QT文档一起看更加清晰
不懂autoMap如何使用的:点这里

一、AutomappingManager


loadFile(const QString &filePath)
  1. 判断传入的filePath是否存在、可读性
  2. 加入QFileSystemWatcher中,它可以替我们监视文件系统是否有对文件或目录进行修改
  3. 读取路径下的文件,通过上面automap的使用视频,我们可以看出rulePath的信息一行行写入的



    4.如果文件路径是相对路径,转为绝对路径
    5.如果文件是以.tmx为后缀,就新建一个autoMapper对象,传入rulePath路径下的地图格式等
    6.如果文件以.txt为后缀,打开该文件,再次查找里面的rules

这代码里有一个地方写法很有趣

Tiled Map Editor:AutoMapping源码分析(一)_第1张图片

rules放弃对它所指对象的控制权,并返回保存的指针,将rules置为空,不会释放内存,返回保存的指针作为形参传递到了autoMapper。这样避免了多个独占指针同时指向一个对象。

二、AutoMapperWrapper


AutoMapperWrapper是AutoMapper的包装类,这个类只有撤销和重做功能,其他重要功能都在AutoMapperWrapper里。
包装类主要用于提供与它包装的东西不同的接口,也可以用于管理包装的东西的资源,如这里的AutoMapperWrapper


Tiled Map Editor:AutoMapping源码分析(一)_第2张图片

你可能感兴趣的:(Tiled Map Editor:AutoMapping源码分析(一))