开源软件名称(OpenSource Name):zhongfq/cocos-lua开源软件地址(OpenSource Url):https://github.com/zhongfq/cocos-lua开源编程语言(OpenSource Language):C++ 56.6%开源软件介绍(OpenSource Introduction):Cocos-luacocos-lua以cocos2d-x v4的c++项目为基础,采用基于lua gc来管理c++对象的生命周期,提供更丰富cocos2d-x lua api,包括几乎除模版以外的所有lambda(schedule、scheduleOnce...)函数回调,能够极大减少在lua层使用c++对象的负担。 优势
如何使用cocos2d-x v4全部采用cmake构建,可以使用cmake生成各平台项目,生成之前,确保已经安装了cmake和python2.7。 生成macOS项目cd cocos-lua
mkdir -p build/mac-build && cd build/mac-build
cmake ../.. -GXcode
open cocos-lua.xcodeproj 生成iOS项目cd cocos-lua
mkdir build/ios-build && cd build/ios-build
cmake ../.. -GXcode -DCMAKE_SYSTEM_NAME=iOS
open cocos-lua.xcodeproj 生成Visual Studio项目(使用cmd)cd cocos-lua
mkdir build\win32-build && cd build\win32-build
cmake ../.. -A Win32
# cmake ../.. -G"Visual Studio 15 2017" -Tv141 -A Win32 Android编译cd runtime-src/proj.android
./gradlew assembleRelease 更多信息参见v4编译说明 热更新cocos-lua在lua层提供热更的检测和下载,并提供按需下载的支持,具体实现参见assets/src/bootstrap.lua。生成热更新版本文件参见tools/hot-update/build-update.lua脚本,后续将提供更为详细的使用方法。 启动流程cocos-lua启动后会在c++层执行assets/src/bootstrap.lua文件,也就是说,你可以完全不使用cocos-lua提供的lua脚本,更换为自己所熟悉的方案,比如quick-x。 lua版本cocos-lua虽然基于lua 5.4,但是绑定库olua兼容lua 5.1和5.3,也就是你自己可以更换lua 5.1或luajit。当然也可以将cocos-lua的绑定代码移植至你所熟悉的cocos2d-x lua方案中。 绑定代码生成tools/lua-bindings提供代码生成脚本,具体的例子可以参考tools/lua-bindings/conf目前下的配置文件,如果你所使用的平台执行有问题,那么你可以自己编译clang动态库,编译参见lua-clang # window cmd,mac or linux terminal
cd tools/lua-bindings
lua build.lua 核心实现cocos-lua在lua层屏蔽Ref的release和retain方法,改由lua gc管理,以实现c++对象的安全访问。 1. 引用管理
2. lambda函数区别于传统lua ref机制,olua将lua函数回调存储在userdata的uservalue中,这样好处,是将函数的生命周期与对象绑定,并且不会出现传统lua ref机制中循环引用,导致对象不被回收。 3. 回调函数生命周期将lua回调函数存储在uservalue会有一个问题,如果uservalue被回收,那么回调函数就丢失了。比如CallFunc中的回调,当调用完obj:runAction(sequence)之后,在action未全部完成而中途发生lua gc,那么这些userdata对象将被回收,这就导致与使用的预期不一致问题。为了解决这个问题,cocos-lua通过导出时插入代码的方式,引入了引用链的机制。
若干说明
待完成
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论