原文链接来自于github网:https://github.com/bjorn/tiled/wiki/Contributing-to-Tiled
所有内容均为个人自行翻译,仅供参考。
介绍Tiled
如果你已经对C++有一定的了解,那么了解QT版本的Tiled就很容易了。所有你需要做的就是了解到怎样获取系统版本和QT应用框架。当然,你也可以依据之前的做法。
从Git中检出源
安装Git
安装Git的方法依据不同的系统而不同。如果去Git下载页面,你就会出现合适的方法。
检出Tiled
当你可以使用Git界面从库中检出,我下面就介绍从控制台检出的方法。Git库是在github.com上。你可以在http://github.com/bjorn/tiled中找到Tiled。
为了确保本地有一个库,使用下面的命令:
$ git clone git://github.com/bjorn/tiled.git $ cd tiled $ git log
当你看到最后的命令时,这不仅是给了你一个源码库,而是包括所有的开发历史记录,允许你快速查看变更及之前的记录。
开始使用工具
安装C++编译器
- 在linux中,使用g++安装
- 在Windows中,建议使用包含MinGW的Qt包(从Qt5.0.1可用)
- 在Max OS X中,我相信你需要使用Xcode。
安装Qt和zlib
从http://qt-project.org/downloads下载Qt。默认包自带Qt Creator,提供简便的方法去编译及运行Tiled,当然它也是一个修改Tiled强大的IDE。
Tiled也直接依赖zlib库来夸张。在Debian和Ubuntu系统中,zlib可以通过下面的方式来安装:
$ sudo apt-get install zlib1g-dev
在Windows系统中,安装Zlib Windows的“完整包”。如果你没有把zlib安装到应用程序的默认路径下,设置ZLIB_PATH环境变量到你的安装目录中。
编译及运行
一旦你完成安装,便可以在Qt Creator中打开tiled.pro。如果Qt Creator没有检测Qt库,设置preferences(在Build&Run->Qt Version,并且建立一个Kit再添加它在Projects模式中)。接着,确保运行对象为Tiled并且其它程序没有依赖Tiled。最后按下Run按钮编译运行程序。
如果你更倾向于命令行操作,你可以使用下面的命令来编译运行Tiled:
$ qmake #生成MakeFiles $ make #编译Tiled $ bin/tiled #运行Tiled
提示:有一些系统中的qmake是不可用的(或者默认的是Qt3,Tiled不运行编译)。那样的话,使用qmake-qt4,qmake-qt5或者其它的适用系统的方法。
使用Qt Creator和Qt5.0.1生成Tiled在Windows系统下的MinGw
由于Qt的库和结构中的的一些依赖被修改后。一旦Tiled在Qt Creator之外可正常工作,但如果你尝试直接运行它高度可执行错误时会弹出。你必须复制并粘贴下面的文件QT_DIR\5.0.1\mingw47_32\bin目录到可执行文件的根目录:
icudt49.dll
icuin49.dll
icuuc49.dll
libEGL.dll
libgcc_s_sjlj-1.dll
libGLESv2.dll
libstdc++-6.dll
libwinpthread-1.dll
Qt5Core.dll
Qt5Gui.dll
Qt5OpenGL.dll
Qt5Widgets.dll
如果使用延迟加载dll你必须复制QT_DIR\5.0.1\mingw47_32\plugins\imageformats到plugins\imageformats。建议复制所有的文件除了所有后缀中带d的像qjpeg.dll和非qjepgd.dll。
Qt5之后,你必须从QT_DIR\5.0.1\mingw47_32\plugins\platforms中复制qminimal.dll和qwindows.dll到plugins\platforms。最后的文件qt.conf会被创建在根目录中使用下面的内容。
[Paths]
Plugins = plugins
Translations = translations
介绍补丁
编辑代码并提交
使用你喜欢的编辑器来编辑代码。当你使用它的时候,你会很方便的使用邮件或者 IRC方式来咨询问题,这里有相关的链接。
一旦你已经完成相关修改,你需要创建一次提交。在提交之前,你应该告诉Git你是谁。可以这样来做:
$ git config --global user.name "Real Name Surname" $ git config --global user.email "your.email@domain"
这个信息在每次提交时存储,并且确保让大家知道谁在更改。注意Git不保存账号信息,比如像Subversion中的中心版本控制一样。
现在,在你提交之前,可以查看下git status的状态。可以这样来查看:
[bjorn@thor tiled-qt]$ git status #On branch master #Changed but not updated: # (use "git add <file>.." to update what will be commintted) # (use "git checkout -- <file> ..." to discard changes in working directory) # # modified:src/mapscene.cpp # modified:src/src.pro # # Untracked files: # (use "git add <file> ..." to include in what will be committed) # # src/smartbursh.cpp # src/smartbursh.h
这里,Git显示你已经修改了两个文件mapscene.cpptkg src.pro,并且通过git新添加了两个文件smartbursh.cpp和smartbrush.h。可以使用下面的方法来提交修改:
$ git add src/mapscene.cpp $ git add src/src.pro $ git add src/smartbrush.cpp $ git add src/smartbursh.h $ git commit [write commit message in editor that was started]
注意:你可以使用下面的完成一次提交所有文件:
$ git add -A
然而,这样会有一点危险,因为它会添加一些未知的文件到git中,也许会有一些你不想添加上去的文件。仔细阅读git status的输出结果。一种更安全的方法可以这样:
$ git add src/smartbrush.{cpp,h} $ git commit -a
这里,第二行告诉Git你添加了一些改变并便于跟踪。我发现一种最简单的方式,就是使用git gui。它有一种可交互的部分,你在提交的时候,可以查看交选择提交的内容及编写提交信息。
反馈你的修改
有诸多方法你可以做这个。如果你对自己的修改不肯定,可以让其他人帮你检查。导入你的提交:
$ git format-patch origin/master
接着,在IRC中通过邮件发送你的文件给其他人。当你更新本机的库时,确保你本机的修改时在最新的内容上修改的,下拉最新的方式:
$ git pull --rebase
这样就可确保所有正确的内容被提交,并合并了一些非必要的内容。
愉快Coding!