在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ C/ cxx-generator JS 綁定工具
cocos2d-x for js 中的繼承
JS 與 C++ 的交互 1——JS 代碼調(diào)用 C++ 代碼
迎接腳本時(shí)代的到來
解決在 vs 中修改 js 源文件無效
JS 腳本語言的優(yōu)勢(shì)與一些問題
注冊(cè)函數(shù)
回調(diào)函數(shù) 2
cxx-generator JS 綁定工具
使用 cocos2d-console 工具轉(zhuǎn)換腳本為字節(jié)碼
hybrid 開發(fā)模式
JS 與 C++ 的交互 2——JS 與 C++ 的“函數(shù)重載”問題
回調(diào)函數(shù)1——按鍵回調(diào)
Google 的繼承寫法解析
John Resiq 的繼承寫法解析
JS 與 C++ 的交互 3——C++ 和 JS 類型轉(zhuǎn)換
傀儡構(gòu)造函數(shù)

cxx-generator JS 綁定工具

第一部分:配置安裝環(huán)境

cxx-generator 是由 Zynga 工程師貢獻(xiàn)的 C++ 代碼綁定到 js 工具。用于將 cocos2d-x 的 c++ 代碼,生成相應(yīng)的 js 綁定代碼(由 c++ 寫成),然后將這些函數(shù)注冊(cè)到 spidermonkey 的解釋器中。通過將 js 代碼映射成 c++ 代碼,就可以使用相應(yīng)的 js 接口了。 所需要的環(huán)境 mac os x 系統(tǒng)
python2.7
py-yaml
cheetah (for target language templates)
libclang, from clang 3.1

前三個(gè)可以通過 macports 自動(dòng)安裝
macports 下載地址
http://www.macports.org/install.php
注意選擇適合你的系統(tǒng)版本,另外該頁也注明了安裝中常見的系統(tǒng)問題,一共四條。
在安裝 macports 時(shí),有可能會(huì)卡在最后一分鐘,那么需要重啟后斷網(wǎng)安裝即可。

在終端上運(yùn)行此命令,安裝前三個(gè)軟件
sudo port install python27 py27-yaml py27-cheetah 安裝對(duì)網(wǎng)絡(luò)有一定要求,部分地區(qū)可能要自備梯子

下載clang

http://llvm.org/releases/3.1/clang+llvm-3.1-x86_64-apple-darwin11.tar.gz

下載NDK
綁定例子中,用到了部分 c++ 標(biāo)準(zhǔn)庫接口,所以需要提供相應(yīng)代碼實(shí)現(xiàn),工具中,采用 ndk 實(shí)現(xiàn)。不太明白為什么沒有直接用 xcode 中的標(biāo)準(zhǔn)庫。

http://dl.google.com/android/ndk/android-ndk-r8d-darwin-x86.tar.bz2

第二步,生成綁定代碼

復(fù)制 userconf.ini.sample 和 user.cfg.sample 并去掉 sample 后綴

添加自己的路徑,我的是多系統(tǒng)所以路徑有點(diǎn)特別

//user.cfg  
PYTHON_BIN=/opt/local/bin/python2.7  

//userconf.ini   
[DEFAULT]  
androidndkdir=/Volumes/data/Mac_OS_X/android-ndk-r8b
clangllvmdir=/Volumes/data/Mac_OS_X/clang+llvm-3.1-x86_64-apple-darwin11
cxxgeneratordir=/Volumes/data/Workspace/cocos2d-2.1beta3-x-2.1.0/tools/cxx-generator

最后,由終端運(yùn)行

sudo ./test.sh

生成 simple_test_bindings 文件夾,下面就是綁定好的 c++ 代碼了。

第三步,集成測(cè)試

懶省事直接拿 TestJavaScript 例子開刀,倒入兩個(gè)文件夾 simple_test 和 simple_test_bindings

在 AppDelegate.cpp 中,倒入頭文件

#include "autogentestbindings.hpp"

并注冊(cè)

sc->addRegisterCallback(register_all_autogentestbindings);

在 tests-boot-jsb.js 中,添加測(cè)試代碼

var myClass=new ts.SimpleNativeClass();
var myStr=myClass.returnsACString();
cc.log(myStr); 

控制臺(tái)輸出

this is a c-string

參考文獻(xiàn)
https://github.com/funkaster/cxx-generator
http://www.macports.org/install.php