想打算搞一款屬于自己的游戲汹粤,如果自己手寫的話娄猫,還真沒有那個實(shí)力楞件,因?yàn)椴粌H僅是程序的技術(shù)實(shí)現(xiàn)盾饮,框架實(shí)現(xiàn),還有數(shù)值系統(tǒng)戏阅,自己的功力尚淺昼弟,所以就拿別人的東西來試試手。然后自己就選擇了一款比較早的開源游戲饲握,M.A.R.S(有興趣的童鞋可以自己百度)私杜。
? ? 別看老外程序員的工資蠻高的蚕键,其實(shí)不必國內(nèi)的生存環(huán)境好多少救欧,他們的高收入上面對軟件以及互聯(lián)網(wǎng)的各種收費(fèi)不比低收入的國內(nèi)程序員強(qiáng)多少(國內(nèi)各種破解,盜版等等啦)锣光。對于操作系統(tǒng)即是如此笆怠,老外熱衷于linux,在國內(nèi)看來誊爹,linux博大精深蹬刷,搞linux的都是大神,哈哈频丘,這其實(shí)是種誤解办成,linux在服務(wù)器上的應(yīng)用確實(shí)強(qiáng)大,但是別的地方特別是家用的搂漠,linux沒什么優(yōu)勢迂卢,那些老外搞得linux上的各種辦公軟件只能證明他們就是屌絲,用不起windows,(畢竟2000塊錢呢)而克,而我們就不一樣了靶壮,我們可以用各種注冊和破解。所以老外的開源項(xiàng)目linux平臺上的其實(shí)是蠻多的员萍。話所回來腾降,這款游戲雖然能跨平臺,但是作者只給了linux的支持碎绎,而我需要把他改成windows版本螃壤。
? ? 那么linux遷移到windows平臺上一般會遇到哪些問題呢?
????? ? 1.編譯器不一樣(GNC和vs平臺的差異混卵,包括語法映穗,包括支持庫的不同)
????? ? 2.項(xiàng)目的配置。
當(dāng)然我這里還好幕随,沒有遇到那么多的問題蚁滋,游戲項(xiàng)目還算工整,我就把在luban的那種項(xiàng)目配置方式拿過來用了赘淮,然后把代碼 頭文件辕录,lib文件都分開放入各自的目錄中,然后依賴項(xiàng)sfml放好梢卸。而taglib走诞,fribidi兩個庫沒有windows版本,這兩個庫分別是用作播放聲音和編碼轉(zhuǎn)換用的蛤高,分析游戲框架即可知道蚣旱,這兩個東西只在文件加載和播放聲音的地方試用了下,這里打算替換為自己的戴陡。
? ??? ? 3.就是編譯時目前只支持多字節(jié)塞绿,不支持unicode.然后就是配置的時候需要加入宏定義。 有:_USE_MATH_DEFINES恤批,__WIN32__异吻,WIN32。
????????? 其中替換fribidi的時候喜庞,文件編碼的轉(zhuǎn)換诀浪,遇到了很大的一個坑,還有就是分析函數(shù)的作用那里遇到了一些問題延都,最好才定位明白雷猪。
在這里需要具備一些能力:
????? ? 1.函數(shù)的準(zhǔn)確定位功能。
????? ? 2.分析代碼晰房,需要分析一些宏是否要加好求摇。
????? ? 3.模塊之間的依賴關(guān)系酵颁。
????? ? 4.代碼錯誤之后的,定位分析能力月帝。