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.addSpriteFramesWithFiledisplay.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.addSpriteFramesWithFiledisplay.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_CURL1.3M使用 CURL 库提供 HTTP 网络功能。关闭后,assetsmanager等相关功能也会被去掉。quick 在 Android 下使用 Android 系统的 Java 接口提供 HTTP 网络功能,所以 CURL 关闭后仍然可以使用HttpRequest。
CC_USE_TIFF514KB使用 TIFF 图像格式。
CC_USE_WEBP208KB使用 WebP 图像格式。
CC_USE_JPEG368KB使用 JPEG 图像格式。
CC_USE_PHYSICS416KB使用物理引擎。
CC_USE_3D212KB使用 3D 模块。
CC_USE_SQLITE367KB使用 Lua 的 Sqlite 数据库扩展 lsqlite3。
CC_USE_CCSTUDIO1.2M使用 Cocos Studio 支持模块。
CC_USE_CCBUILDER208KB使用 Cocos Builder 支持模块。
CC_USE_SPINE92KB使用 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.addSpriteFramesWithFiledisplay.addSpriteFrames
ccc3()cc.c3b()
ccc4()cc.c4b()
ccc4f()cc.c4f()
ccc4FFromccc4B()cc.c4fFromc4b()
getZOrder()getLocalZOrder()
setZOrder()setLocalZOrder()
setFlipX()setFlippedX()
setFlipY()setFlippedY()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值