溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

【cocos2d-x從c++到js】07:cxx-generator JS綁定工具

發(fā)布時間:2020-05-26 20:00:31 來源:網(wǎng)絡 閱讀:9883 作者:老G 欄目:游戲開發(fā)

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

cxx-generator是由Zynga工程師貢獻的C++代碼綁定到js工具。用于將cocos2d-x 的c++代碼,生成相應的js綁定代碼(由c++寫成),然后將這些函數(shù)注冊到spidermonkey的解釋器中。通過將js代碼映射成c++代碼,就可以使用相應的js接口了。

所需要的環(huán)境

mac os x系統(tǒng) 

  • python2.7
  • py-yaml
  • cheetah (for target language templates)
  • libclang, from clang 3.1

 

前三個可以通過macports自動安裝

macports下載地址

http://www.macports.org/install.php

注意選擇適合你的系統(tǒng)版本,另外該頁也注明了安裝中常見的系統(tǒng)問題,一共四條。

在安裝macports時,有可能會卡在最后一分鐘,那么需要重啟后斷網(wǎng)安裝即可。

 

在終端上運行此命令,安裝前三個軟件

sudo port install python27 py27-yaml py27-cheetah

安裝對網(wǎng)絡有一定要求,部分地區(qū)可能要自備×××
 
 
下載clang
 
http://llvm.org/releases/3.1/clang+llvm-3.1-x86_64-apple-darwin11.tar.gz
 
 
下載NDK
綁定例子中,用到了部分c++標準庫接口,所以需要提供相應代碼實現(xiàn),工具中,采用ndk實現(xiàn)。不太明白為什么沒有直接用xcode中的標準庫。
 
http://dl.google.com/android/ndk/android-ndk-r8d-darwin-x86.tar.bz2
 
第二步,生成綁定代碼
 
復制 userconf.ini.sample 和 user.cfg.sample 并去掉sample后綴
 
添加自己的路徑,我的是多系統(tǒng)所以路徑有點特別
 
//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
 
 
最后,由終端運行
sudo ./test.sh
 
生成simple_test_bindings文件夾,下面就是綁定好的c++代碼了。
 
 
第三步,集成測試
 
懶省事直接拿TestJavaScript例子開刀,倒入兩個文件夾simple_test和simple_test_bindings
 
在AppDelegate.cpp中,倒入頭文件
#include "autogentestbindings.hpp"
并注冊
sc->addRegisterCallback(register_all_autogentestbindings);
 
在tests-boot-jsb.js中,添加測試代碼

var myClass=new ts.SimpleNativeClass();

var myStr=myClass.returnsACString();

cc.log(myStr);

控制臺輸出

 

this is a c-string

 

 

參考文獻

https://github.com/funkaster/cxx-generator

http://www.macports.org/install.php

http://cn.cocos2d-x.org/bbs/forum.php?mod=viewthread&tid=10226&extra=page%3D1

 

 

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

AI