分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 代码编程

Cocos2d-x JSB 自己主动绑定bindings

发布时间:2023-09-06 01:46责任编辑:林大明关键词:暂无标签
???????????????????????????
???????????????????????

Javascript Binding (简称JSB) 自己主动绑定教程。

Cocos2d-x JSB 自己主动绑定bindings-generator (以下简称B-G) 使用心得


假设想弄清深入原理,推荐阅读??Cocos2D-x从C++到JS的进阶之路:http://blog.51cto.com/zt/560?

B-G 是什么?
? 当使用JSB的时候,假设你想要使用的C++的类或者方法没有在已有JSB中被绑定,这时候。就能够使用B-G。

它能够生成相相应的C++的绑定文件和相相应的JS接口,届时,你仅仅须要调用生成的相相应的JS接口,它将自己主动转换成原来的C++的类。相当于直接调用原来的C++方法或者类。

B-G生成主要流程:
准备好必要的工具 -> 准备好你要绑定的C++的文件 -> 写生成文件的.ini配置文件和.sh 脚本程序 -> 执行 .sh 脚本文件 -> 生成绑定文件 -> 測试绑定文件直至能够正常使用

必要的工具:
cocos2d-x引擎:http://cocos2d-x.org/projects/cocos2d-x/wiki/Download
python 2.7:http://www.python.org/download/?? (眼下引擎里面的bindings-generator仅仅支持python2.7版本号)
py-ymal:?http://pyyaml.org/wiki/PyYAML??(这是python的一个第三方包。下载页有不同系统的安装方式,能够參考。

generator.py会调用到这个包。


cheetah:http://www.cheetahtemplate.org/?(这也是python的一个第三方包,一个模板。generator.py会调用到这个包。安装方式跟py-ymal同样。)
libclang:http://llvm.org/releases/3.1/clang+llvm-3.1-x86_64-apple-darwin11.tar.gz (生成的时候须要用到的lib,注意master分支也就是2.2.2这个版本号的引擎用3.1的,develop分支也就是3.0版本号的引擎用3.3的)
Android NDK:http://dl.google.com/android/ndk/android-ndk-r8c-darwin-x86.tar.bz2 (測试的时候使用的v2.2.2用的r8c, 如今的3.0beta版须要用r9b)

.ini文件
參考样例:cocos2dx引擎根文件夹/tools/bindings-generator/test/test.ini?
cocos2dx引擎根文件夹/tools/tojs/cocos2dx_extension.ini
cocos2dx引擎根文件夹/tools/tojs/cocos2dx.ini


.ini中部分參数的使用方法:
name:?单纯仅仅是名称。
prefix:?最后生成的文件都会以这个命名前缀,如 prefix.cpp, prefix.hpp, prefix_api.js?
classes:?你的所需转换的类的名称。必须是所导入的头文件里全部的类,这里能够使用正則表達式来增加多个类,參考cocox2dx.ini。


extra_arguments:?一些接口所需的系统參数。如clang包。android ndk包的引入所需的系统參数,写法能够參照以上三个.ini。?
headers:?你所须要绑定的头文件路径。

?
target_namespace:命名空间。最后生成的JS文件的类。会以这个命名空间开头。比如你的类为sqlite。命名空间为cocos2dx。那么最后生成的就是cocos2dx.sqlite。

?
rename_functions:能够将你要绑定的方法的名称更改成你所要的。能够更改多个。用逗号隔开,写法參照?SqliteCpp::[sqlite3_execCpp=sqlite3_exec]。这个就是将SqliteCpp中的sqlite3_ execCpp方法重命名为sqlite3_exec方法。
rename_classes?:同上。重命名类。
skip?:跳过你所不须要绑定的方法和类,于是就不生成。

.sh文件:主要调用程序。用来读取.ini配置文件和写部分參数。
參考样例:cocos2dx引擎根文件夹/tools/tojs/genbindings.sh?
? ? ? ? ? ? ? ? ? ? cocos2dx引擎根文件夹/tools/bindings-generator/test/test.sh

以下这句话便设定了通过调用generator.py来调用你的配置文件。并在你所设定的敌方生成你须要的绑定文件。

?set -x LD_LIBRARY_PATH=${CLANG_ROOT}/lib $PYTHON_BIN ${CXX_GENERATOR_ROOT}/generator.py ${TO_JS_ROOT}/sqlite.ini -s sqlite -o ${TO_JS_ROOT}/sqliteBinding
写好.ini和.sh后,在cmd执行 sudo 你的.sh路径 。便能够在你配置的地方找到你生成的文件。

???????????????

???????????????????
???

Cocos2d-x JSB 自己主动绑定bindings

原文地址:https://www.cnblogs.com/zhchoutai/p/8608989.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved