lua QUICK-COCOS2D-X

學lua 有倆個星期了,感悟頗深。一個是觸控真的很坑,現在好多lua的軟件和教程已經不維護和更新了。一心開發creator。網上的坑有好多,有的版本很老。安裝和配置就在網上找半天。泰然網和觸控教程跟着做是最好的。  工具一般要到英文網上找。http://www.cocos2d-x.org/download/

教程直接跟着做就好。


做的時候千萬不好複製。

1.否則  第一個坑 

報錯  unexpected symbol near "?"是有空格




沒有預先加入圖片


function MyApp:run()
cc.FileUtils:getInstance():addSearchPath("res/") 
display.addSpriteFrames("role.plist", "role.pvr.ccz")
display.addSpriteFrames("ui.plist", "ui.pvr.ccz") 
    self:enterScene("MainScene")
end


教程因爲版本問題

有的已經不要了


轉載自

http://my.oschina.net/ffs/blog/390275




CCLuaLog() print()
CCFileUtils:sharedFileUtils() cc.FileUtils:getInstance()
kCCTexture2DPixelFormat_* cc.TEXTURE2D_PIXEL_FORMAT_*
display.addSpriteFramesWithFile display.addSpriteFrames
ccc3() cc.c3b()
ccc4() cc.c4b()
ccc4f() cc.c4f()
ccc4FFromccc4B() cc.c4fFromc4b()
getZOrder() getLocalZOrder()
setZOrder() setLocalZOrder()
setFlipX() setFlippedX()
setFlipY() setFlippedY()


CCLuaLog() print()
CCFileUtils:sharedFileUtils() cc.FileUtils:getInstance()
kCCTexture2DPixelFormat_* cc.TEXTURE2D_PIXEL_FORMAT_*
display.addSpriteFramesWithFile display.addSpriteFrames
ccc3() cc.c3b()
ccc4() cc.c4b()
ccc4f() cc.c4f()
ccc4FFromccc4B() cc.c4fFromc4b()
getZOrder() getLocalZOrder()
setZOrder() setLocalZOrder()
setFlipX() setFlippedX()
setFlipY() setFlippedY()

1.ccp改爲cc.p

2.CCDirector等大量CC的寫法改爲cc.Director,即CCDirector:sharedDirector()改爲cc.Director:getInstance(),SimpleAudioEngine:sharedEngine()改爲cc.SimpleAudioEngine:getInstance()。

3.骨骼動畫寫法的修改,如CCArmature:create 改爲 ccs.Armature:create等

4.骨骼動畫的釋放,ccs.ArmatureDataManager:purge()改爲ccs.ArmatureDataManager:destroyInstance()

5.音樂播放類的帶background的方法寫法的修改,如isBackgroundMusicPlaying改爲isMusicPlaying

6.sprite的點擊判斷的修改,如下面例子:self.sprite是我們的精靈,pnt是我們的點,那麼self.sprite:getBoundingBox():containsPoint(pnt)改爲cc.rectContainsPoint(self.sprite:getBoundingBox(), pnt)

7.ui.newBMFontLabel改爲cc.ui.UILabel.newBMFontLabel

8.現在的layer層默認是吞噬點擊,所以我們在添加新的層的時候,應當設置爲不可吞噬,也就是setTouchSwallowEnabled(false)

9.tableview裏的寫法改變:如kCCScrollViewDirectionVertical改爲cc.SCROLLVIEW_DIRECTION_VERTICAL等

10.http請求回調的返回值“inprogress”改爲“progress”

11.同時多個assetsmanager同時在下載的過程中,回調的progress值會產生跳動的情況,解決的方法是找到asstsmanager.cpp文件,修改其中的一個函數的percent前的前綴static,把static去掉並重新編譯即可。

12.assetsmanager寫法修改,如:

local assetsManager = cc.AssetsManager:new(zipurl, versionurl, path)
assetsManager:deleteVersion()
assetsManager:retain()
assetsManager:setConnectionTimeout(3)

其中retain這句話必不可少,否則會報錯。

13.ui.newImageMenuItem改爲cc.ui.UIPushButton.new。

14.在quick 3.3中,精靈不可以直接執行cc.PageTurn3D方法,會直接報錯,我的解決方法是用cc.NodeGrid:create()創建一個nodegrid,把我們的精靈加在這個nodegrid上,然後在用nodegrid去調用類似PageTurn3D的方法即可。

15.物理引擎相關代碼的修改,在一開始創建的時候,

local Scene = class("Scene", function()
return display.newPhysicsScene("Scene")
end)

創建長方形的剛體,

local b = cc.PhysicsBody:createBox(cc.size(x, y))

b:getShape(0):setMass()   設置重量
b:getShape(0):setRestitution()  設置彈力
b:setVelocity() 設置速度

如果我們想綁定精靈a到b上,即

a:setPhysicsBody(b)

16.在android上,device.cachePath改爲device.writablePath

17.骨骼動畫的play()方法去掉,改爲playWithIndex

18.在android真機上編譯的時候,我們要注意:

這裏直接貼上github上的表格,

要啓用這個功能,開發者需要打開項目中的 proj.android/jni/Application.mk 文件,然後將不需要的模塊值改爲 0。

MACRO 體積 功能 
CC_USE_CURL 1.3M 使用 CURL 庫提供 HTTP 網絡功能。關閉後,assetsmanager等相關功能也會被去掉。quick 在 Android 下使用 Android 系統的 Java 接口提供 HTTP 網絡功能,所以 CURL 關閉後仍然可以使用HttpRequest。
CC_USE_TIFF 514KB 使用 TIFF 圖像格式。
CC_USE_WEBP 208KB 使用 WebP 圖像格式。
CC_USE_JPEG 368KB 使用 JPEG 圖像格式。
CC_USE_PHYSICS 416KB 使用物理引擎。
CC_USE_3D 212KB 使用 3D 模塊。
CC_USE_SQLITE 367KB 使用 Lua 的 Sqlite 數據庫擴展 lsqlite3。
CC_USE_CCSTUDIO 1.2M 使用 Cocos Studio 支持模塊。
CC_USE_CCBUILDER 208KB 使用 Cocos Builder 支持模塊。
CC_USE_SPINE 92KB 使用 Spine 支持模塊。
CC_CODE_IDE_DEBUG_SUPPORT   使用 cocos IDE 調試支持模塊。在 release 版本里自動關閉,因此沒有統計它在release版本下的體積。

只需要在 Applicaiton.mk 中將相應的宏設置爲 0,然後重新編譯就可以得到更小的可執行文件。

在proj.android_no_anysdk工程中,以上可選模塊均已經關閉。因此如果直接使用no_anysdk工程來編譯,生成的apk包將不支持上述模塊功能,如需要請自己修改相應的開關。

還有一些常用的基礎模塊可以去除,由於可能影響常用的功能,請根據自己的情況移除。打開文件 frameworks/runtime-src/Classes/lua_module_register.h ,分別註釋掉以下語句:

register_cocosdenshion_module(L);   // 簡單音效模塊
    register_network_module(L);         // 網絡模塊,如 socket 和 websocket
    register_ui_moudle(L);              // 基礎UI庫,如編輯框等
    register_extension_module(L);       // 基本擴展,如 TableView 等
    register_audioengine_module(L);     // audio engine 模塊
這裏,如果我們發現編譯後的包還是出現找不到sqlite3之類的錯誤,那麼我們可以運行android項目下的clean.bat,然後再重新編譯即可。 

CCLuaLog() print()
CCFileUtils:sharedFileUtils() cc.FileUtils:getInstance()
kCCTexture2DPixelFormat_* cc.TEXTURE2D_PIXEL_FORMAT_*
display.addSpriteFramesWithFile display.addSpriteFrames
ccc3() cc.c3b()
ccc4() cc.c4b()
ccc4f() cc.c4f()
ccc4FFromccc4B() cc.c4fFromc4b()
getZOrder() getLocalZOrder()
setZOrder() setLocalZOrder()
setFlipX() setFlippedX()
setFlipY() setFlippedY()

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章