轉眼七月份就到了,2014已經過了一半,而我也終於算是有“一年工作經驗“了,開心ing。
回顧這一年Cocos2dx的遊戲開發經曆,去年下半年重心主要在遊戲的邏輯上,而今年上半年重心轉至UI上,現在看來也算是有個比較全面的鍛煉。
一直想系統的學下lua,可是總被這個事那個事給耽擱了。我是個挺懶的人,下班後的時間更偏向於做一些代碼之外的事,周末幾乎都是東奔西跑,呆在家裡也是玩玩LOL。
也不知道這種習慣到底好不好。我曾經一度想想大多程式員一樣,熬夜到兩三點研究學習下新知識,但最終都以失敗告終,習慣了十二點前睡覺的習慣,熬夜確實很吃力。
-----------------------------------
說道Cocostudio,其實很早以前就有下來研究了,只是那時覺得用起來還比較麻煩,而且項目中也暫時都沒用到的,也就暫時擱置一旁。cocos2dx 3.0版本推出後,在 笨木頭部落格裡的《別殺我》系列教程中看到他介紹了如何使用Cocostudio,我才頓悟!原來這貨已經變得這麼好用了啊。
我學習新東西時都有做筆記的習慣,學習Cocostudio自然也不例外。這份筆記存放在雲端硬碟中已經有一段時間了,初衷是不打算髮到部落格上來的,畢竟是筆記,技術層面較為基礎。但後來想想,我當初寫部落格的初衷是什嗎?還不是當雲筆記來用嗎?(希望某人看到別打我),方便自己的同時也能夠幫到一些人。
下面簡要聲明幾點:
1、雖然筆記篇幅較多,但我盡量只用三四篇就將它們全都發出來。
2、著重要說的一件事:做筆記是沒有的,所以,大家都看文字吧。所以本人的文采還過的去,應該不會看得太無趣,哈哈!
3、筆記中我沒有提到在Cocostudio中的那些控制項應該如何使用,因為優酷上有個視頻教程講的還是蠻清楚的:
http://i.youku.com/u/UNTk3MDQ4NzA0?from=113-2-1-2
4、盡量別吐槽.......
---------------------------------
扯完了,進入正題吧。
cocostudio如何在cocos2dx中跑起來了呢?看下面。
1、在cocostudio下建立完項目,記得每個控制項對應的name,因為程式中是通過這個name來擷取該控制項的;
2、匯出項目,可以直接匯入到cocos2dx項目的Resourses目錄下,匯出的檔案包括項目用到的資源,最重要的還是.json檔案;
3、開啟cocos2dx專案檔(VS2012以上版本),將libCocostudio,libExtensions,libGUI三個庫檔案匯入到解決方案中,匯入方法也就是選中“解決方案”,右鍵,添加現有資源,然後自己到Cocos2dx根目錄的cocos目錄下找吧。
4、包含標頭檔
#include "cocostudio/CocoStudio.h";using namespace cocostudio;
如果不出意外的話, 上面兩條代碼寫完編輯器是會報錯的,因為找不到該標頭檔。為什麼呢?明明有Cocostudio.h這個標頭檔不是,可為什麼找不到呢?原因就在於把IDE想得太智能了,它也是要在預設的那些目錄下尋找標頭檔的。所以接下來就是要設定預設目錄,方法如下:
選中自己建立的項目,如HelloWorld,右鍵,在彈出的菜單中選擇最下方的 項目屬性 ,在出現的視窗裡選擇C/C++,選擇附加元件封裝含目錄,然後將”cocos2d-x-3.0\cocos\editor-support“添加進去。
確定後退出該設定,這時候看代碼的話會發現標頭檔那個位置不在報錯了。
5、編譯下項目,可能會在編譯成功的情況下報錯,什麼未找到_stdcall之類亂七八糟的東西在哪個檔案下使用了,出現這種情況無疑有兩種原因:
1)在class聲明裡你聲明了一個函數,可是沒有在.cpp裡定義;
2)沒有在連接器裡的 輸入 添加附加依賴項。
這裡我出現的情況無疑就是第二種原因了,接下來要做的就是修改附加依賴性了,方法:
選中自己建立的項目,如HelloWorld,右鍵,在彈出的菜單中選擇最下方的 項目屬性 ,在出現的視窗裡選擇連結器,選擇 輸入
附加依賴項,然後將 libGUI.lib 輸進去。
6、再次運行程式,明明就要跑起來了,可又出錯了,提示 LINK : fatal error LNK1104: 無法開啟檔案“libGUI.obj”
尼瑪的,報這種錯誤是我最不想要面對的!因為...是我大意了,因為在上一步的最後一個操作,我將libGUI.lib寫成的libGUI,所以肯定出錯。趕緊將.lib添加上去
7、繼續編譯,本以為成功了,結果還是出錯,出錯的情況和第5步類似。說實話,此刻我已經處在了暴走的邊緣,我只是想編譯個項目,你至於這樣為難我嗎?最後沒辦法,只能使用大殺器。
選中自己建立的項目,如HelloWorld,右鍵,在彈出的菜單中選擇最下方的 項目屬性 ,在出現的視窗裡選擇 通用屬性 -- 架構和引用 -- 添加新引用 -- 之後會出現一堆lib**,我在這裡講libCocostudio,libExtenstions,libGUI都選中添加進去。
8、我發誓,這是最後一次編譯,如果還出錯我就...就去睡覺了。恩,猛的按了下F5然後趕緊轉過頭去假裝做其他事,但時不時瞄向螢幕的眼神還是出賣了我當時的緊張心理(尼瑪,程式員就是這麼刺激)。最後,啊哈,成功了!
9、最後要做的肯定就是將Cocostudio製作出來的工程顯示在程式視窗中,調用以下代碼:
auto UI = GUIReader::getInstance()->widgetFromJsonFile("HelloUI_1.Json");this->addChild(UI);其中.json檔案就是在cocostudio中匯出的檔案啦。
10、再次編譯,這畫面太美我敢看。
尊重原創,轉載請註明來源:http://blog.csdn.net/star530/article/details/36501195