cocoslua編譯
『壹』 如何看待cocos creator加入Lua
如果在Cocos Creator裡面只提供JS支持的。這樣就可以很純粹地只用一本編程語言,完成游戲邏輯、編輯器擴展、引擎擴展,引擎一個人輕裝上陣就可以跑得很快,同樣資源投入的情況下開發出更多功能來。
但是Cocos的Lua社區太龐大了。Cocos Creator本身的插件架構是允許隨意擴展的,所以增加一個Lua擴展在技術層面並不難,難的在多一種編程語言之後的維護:
- 增加Lua中英文文檔教程
- 增加Lua API文檔
- 增加Lua測試例
- 增加每個版本發布前的Lua測試
- 增加Lua的論壇技術支持
這些因為『多一門編程語言所帶來的維護成本』這些才是大頭。不過如果這個成本投入可以換來足夠多的開發者數量,那麼也就值得了。
『貳』 如何修改cocos lua路徑
用xcode來開發cocos2dx,結果發現一個很糾結的問題,如果我一旦修改了一個Lua文件,我必須clean之後再build,否則修改的Lua文件不會體現出來。這是一個很令糾結的結果,特別是我要進行調試的時候,在網上搜索了一圈,發現xcode原來可以提供一個build phase的功能,允許在build中間執行一些腳本,而這個時候只要將腳本文件touch一下就可以解決問題,但是比較奇怪的是,如果是touch Resources文件是不行的,必須touch Resources目錄下的某個文件。
每用一個新的ide總會有學習代價,現在覺得如果要開發cocos2dx+lua,linux其實是最好的開發環境,原因是如果在不修改cpp的情況下,
只需要用一個編輯器去寫lua即可,然後立即重啟程序就行了,而android或者ios都需要模擬器,win32直接忽略了;奈何現在換成了mac,沒辦法了,不過還好mac的模擬器足夠快,不像android。
『叄』 cocos lua 是怎樣實現跨平台的
基本流程如下:
1.下載Cocos2d-x庫,分別在Windows平台和Mac平台上解壓,並安裝對應的向導。
2.在Windows平台和Mac平台上創建同名工程。
3.在Windows平台上開發代碼,保證將代碼放在Class目錄和Resource目錄。
4.把Windows平台上開發的Class目錄和Resource目錄中的代碼拷貝到Mac電腦上,覆蓋同名目錄。
5.在Xcode中將剛添加的代碼和資源加入工程。
6.在Xcode中啟動編譯,在虛擬機和真機上測試,完工。
『肆』 如何使用Cocos Code IDE調試Lua開發的游戲
支持調試的環境
在 Windows 上你可以調試Windows和Android游戲,在 Mac 上你可以調試Mac、iOS和Android游戲。我們以 Mac 作為開發環境來演示 Code IDE 的使用,Windows上的流程和這里所介紹的幾乎一樣,不再贅述。
先決條件
如果你還沒有安裝Cocos Code IDE,請參考《如何安裝和設置Cocos Code IDE》
IDE配置
基礎設置
打開工具的 Preferences 頁,切換到 Cocos/Lua 子頁面,選擇你剛剛下載的 Cocos2d-x 3.x 作為 Lua Framework。
額外設置
假設你發現我們提供給你的預編譯的Android runtime不能滿足你的要求,你就需要重新定製,那麼你就需要提供給 IDE 幾個 Android 編譯需要用到的工具。這可以通過打開 Preferences/Cocos 頁面進行配置。
運行、測試游戲
1. 新建一個名為 CocosLuaGame 的 Cocos Lua 工程
2. 點擊工具欄上的Debug按鈕
3. 默認情況下腳本會運行在我們提供的 Mac 版本預編譯 runtime 上。為了簡單起見,我們不對默認值進行任何改動。如果你想要在其他我們支持的目標平台上調試程序,可參考下文的「在其它目標平台上調試」
『伍』 cocos編譯android項目出錯顯示文件名、目錄名或卷標語法不正確怎麼解決
文件名、目錄名或卷標語法不準確,可能是由於文件名太長或包含了這些字元「/」、「\」,「:」、「*」、「?」、「<」、「>」、「」」、「|」造成的。
文件是存儲在一定媒體上的一組相關信息的集合,和我們平時寫在紙上的文件不是一個概念。電腦中的文件,可以是各種程序、數據、文本、圖形和聲像資料等。文件可以是應用程序,也可以是應用程序創建的數據文件,如Word
2010創建的Word文檔,畫圖程序創建的點陣圖文件等。某一部分緊密相關的存儲群體,就叫做一個文件。
每個人都要有名有姓,文件也一樣,無論文件大小,每個文件都必須給它一個命名,以便能在相應的磁碟中找到它,這個名字叫做文件名。Windows7規定,文件名可以有255個字元,但不能包含下列字元:「/」、「\」,「:」、「*」、「?」、「<」、「>」、「」」、「|」。
為了更好地區分不同種類的文件,就像人的名字分為姓和名一樣,文件名也分為兩部分,中間用一個圓點隔開,圓點後面的就是文件的「姓」,叫做擴展名。
同一類型文件的擴展名相同,不同類型文件的擴展名不同,如Word 2010文件的擴展名一般是DOCX,而Excel 2010文件的擴展名一般是XLSX。電腦可以通過文件名,很方便快捷地對文件進行查找或存取操作。
『陸』 cocos2dx 3.16怎麼編譯
先給自己科普一下, android sdk 是給java開發者用的, 咱C++開發者用的是android ndk, 所以就是使用ndk來編譯cocos2dx程序了
使用命令行創建一個項目, 我這里創建的是一個lua項目:cocos new lua_proj2 -p com.company_name.program_name -l lua -d d:\xxx\xxx
此時創建了一個DEMO程序, 此時就可以使用cocos命令生成一個apk包, 進入到目錄lua_proj2\frameworks\runtime-src下面, 在此目錄下面執行命令cocos compile -p android 就會生成一個apk包, 把這個拖到genymotion上面, 就安裝跑起來了.
上面說的是不使用eclipse的方式來生成一個apk包, 下面記錄一下在eclipse中載入lua_proj2這個項目, 並生成apk包的過程. 為什麼一定要將cocos2dx項目導入到eclipse中來生成apk包呢, 因為在eclipse中可以連接AVD來調試android程序, 再者, eclipse可以運行在linux環境下面, 後面我打算在linux進行開發, 所以這一步是一定要跨出去的
打開eclipse, 載入lua_proj2項目, 在此注意一下, 不需要載入libcocos2dx這個項目, 只要載入lua_proj2這個自己新建一項目即可
在eclipse中右擊lua_proj2 -> Properties. 出現Properties for lua_proj2框框
創建一個新的builder
第一個紅框是builder名稱, 隨便填寫, 第二個紅框框是NDK生成工具, 即, 使用此工具來編譯C++項目, 第三個紅框框是工作目錄, 此處我使用lua_proj2項目目錄作為工作目錄, 切換到Environment選項卡, 新建一個在此生成器中使用的環境變數NDK_MODULE_PATH, 值是......\lua_proj2\frameworks\cocos2d-x\cocos;......\lua_proj2\frameworks\cocos2d-x;......\lua_proj2\frameworks\cocos2d-x\external, 前面的.......是絕對目錄的省略, 這里要輸入絕對路徑名稱, 在此我就不寫絕對路徑了.
一路OK下去, 到下面這個畫面
這個就新建立的builder, Project->Build Project
出現大量的error: 'override' does not name a type錯誤, 這是由於NDK的版本太低了, override是C++11中才有的關鍵字, 而到NDKr10才支持C++11, 所以要升級NDK. 到官網去下載吧
不大, 400多M的樣子, 更新完成之後, 看一下ndk\toolchains目錄下面的編譯器, 我的目錄是下面這樣子的
我很想使用clang來編譯, 但是現階段我還不會配置, 就用GCC吧, x86-4.6 & x86-4.8兩個版本的GCC, 4.8的支持C++11
在Application.mk中添加一句NDK_TOOLCHAIN_VERSION = 4.8 就是指定使用GCC4.8來編譯cocos2dx項目, 跑起來了, 下面是eclipse跑起來的console輸出
跟命令行下執行cocos compile -p android 跑出來的是一樣的, 都是在編譯程序. 下面進入到在eclipse下面調試程序
『柒』 cocos lua 是怎麼調用c++的
使用cocos2dx-lua開發,免不了自己定義類,但是如何使用自定義的類的?先了解下lua如何調用c++的:lua腳本代碼->通過coocs2dx中間解析層代碼->將其轉換並調用cocos2dxc++的前端代碼coocs2dx中間解析層代碼都在libs/lua/cocos2dx_support/LuaCocos2d.cpp這個文件中,想了解的可以自己去看下這個文件。也就是說,你自己定義了一個類,lua能夠調用你自己定義的類,你的自定義類就必須在LuaCocos2d.cpp這個中間解析文件中申明。看了LuaCocos2d.cpp這個文件,可能有的同學都暈了,不知道怎麼在LuaCocos2d.cpp中申明自己的定義的類。不過,不用擔心,cocos2dx已經提供了tolua++這個工具自動編譯生成新的LuaCocos2d.cpp文件。下面開始進入正題。一、創建一個coocs2dx-lua的Demo工程,然後在class中自己定義個類。SNSprite.h[/cpp]////SNSprite.h//LuaDemo////CreatedbyLiuYanghuion13-4-8.////#ifndef__LuaDemo__SNSprite__#define__LuaDemo__SNSprite__#include「cocos2d.h」USING_NS_CC;classSNSprite:publicCCSprite{public:staticSNSprite*create(constchar*name);private:voidinitData();};#endif/*defined(__LuaDemo__SNSprite__)*/[/cpp]SNSprite.cppC++localfunctioncreateSunnyLayer()locallayerSunny=CCLayer:create()locallabTips=CCLabelTTF:create("這個icon圖標就是使用的自定義類","Arial",18)labTips:setPosition(ccp(240,280))layerSunny:addChild(labTips)localsp=SNSprite:create("Icon.png")sp:setPosition(ccp(100,100))layerSunny:addChild(sp)returnlayerSunnyend--playbackgroundmusic,preloadeffect添加到scene中:C++--runlocalsceneGame=CCScene:create()--創建場景--sceneGame:addChild(createLayerFarm())--將農場層加入場景--sceneGame:addChild(createLayerMenu())--將菜單界面層加入場景sceneGame:addChild(createSunnyLayer())CCDirector:sharedDirector():runWithScene(sceneGame)OK,xcode編譯運行,就看到效果了。
『捌』 怎麼用lua compile對lua腳本加密
cmd運行命令:
cocos luacompile -s src/ -d out/ -e -k testKey123456 -b testSign12345 --disable-compile
提示:
D:\zm\Test>cocos luacompile -s src/ -d out/ -e -k testKey123456 -b testSign12345 --disable-compile
通過 luacompile 命令對 lua 文件進行 XXTEA 加密以及編譯為位元組碼的處理。
編譯為位元組碼的功能基於 LuaJIT v2.0.3,所以目前編譯成位元組碼的文件不適用於 iOS 64
位設備。
正在處理 lua 文件。
編譯完成。
編譯成功:我把 out 目錄的名字換成了 src ,原 src 目錄改名叫 src_org
vs 中 加入 這一句:
stack->setXXTEAKeyAndSign("testKey123456", strlen("testKey123456"), "testSign123456", strlen("testSign123456"));
『玖』 cocos2dx-lua 能不能用AMF3來加密lua源文件
你用的是cocos2dx 3.2版本嗎?如果是的話,加密就會比較簡單了。
官方文檔詳見:http://cocos2d-x.org/wiki/Cocos_luacompile
.lua文件編譯為.luac文件[.lua to .luac]
在項目文件目錄下嘗試
cocos luacompile -h查看幫助信息
cocos luacompile -s ./projects/MyLuaGame/src -d ./projects/MyLuaGame/src -e -k MyLuaKey -b MyLuaSign
./projects/MyLuaGame/src--》lua源文件目錄
./projects/MyLuaGame/src--》生成luac存放目錄
關於MyLuaKey及MyLuaSign的設置,見AppDelegate.cpp
stack->setXXTEAKeyAndSign("2dxLua", strlen("2dxLua"), "XXTEA", strlen("XXTEA"));
修改對應的key及sign即可。
『拾』 怎樣使用Cocos LUACompile
下載 Ant。
解壓下載文件到文件夾。
建立環境變數 JAVA_HOME 是你的javascript 環境。 ANT_HOME 是你解壓Ant的文件目錄, 添加 ${ANT_HOME}/bin (Unix) or %ANT_HOME%/bin (Windows) 到你的 PATH.
// Example: Execute in console or add into .bash_profile(Mac)
export ANT_ROOT=/usr/local/ant/bin
export JAVA_HOME=/usr/local/jdk1.7.0_51
用法
在正確安裝完成後,你可以開始使用 cocos 命令在你的控制台(console)
創建一個新工程
你可以使用如下命令容易的創建一個新的Cocos2d-x Lua 工程。
cocos new projectName -l lua
在指定目錄創建一個工程
cocos new projectName -l lua -d ./Projects
運行工程
cd directory/to/project
cocos compile -p ios|mac|android|linux
cocos run -p ios|mac|android| linux
有用的選項
-p platform : 平台可以是 ios|mac|android|web.
-s source : 你的工程目錄, 如果不指定當前目錄會被使用.
-q : 靜默模式, 移除日誌消息.
-m mode : debug 或 release 模式, 默認是debug
幫助
如果你對用法有任何疑惑,請使用 -h 與任何命令 去獲取一些幫助信息。這里是所有三個命令:
new for create
compile for compile
run for run