中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

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

發布時間:2020-05-26 20:00:31 來源:網絡 閱讀:9884 作者:老G 欄目:游戲開發

第一部分:配置安裝環境

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

所需要的環境

mac os x系統 

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

 

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

macports下載地址

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

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

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

 

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

sudo port install python27 py27-yaml py27-cheetah

安裝對網絡有一定要求,部分地區可能要自備×××
 
 
下載clang
 
http://llvm.org/releases/3.1/clang+llvm-3.1-x86_64-apple-darwin11.tar.gz
 
 
下載NDK
綁定例子中,用到了部分c++標準庫接口,所以需要提供相應代碼實現,工具中,采用ndk實現。不太明白為什么沒有直接用xcode中的標準庫。
 
http://dl.google.com/android/ndk/android-ndk-r8d-darwin-x86.tar.bz2
 
第二步,生成綁定代碼
 
復制 userconf.ini.sample 和 user.cfg.sample 并去掉sample后綴
 
添加自己的路徑,我的是多系統所以路徑有點特別
 
//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問一下細節

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

AI

枣庄市| 楚雄市| 中阳县| 安庆市| 康定县| 桂阳县| 古田县| 天镇县| 楚雄市| 闸北区| 百色市| 南皮县| 湖南省| 涟源市| 冀州市| 肥西县| 毕节市| 南木林县| 鸡泽县| 仁化县| 泊头市| 磴口县| 陆川县| 晴隆县| 呼图壁县| 肥西县| 阳曲县| 门头沟区| 榆林市| 吉隆县| 湘阴县| 二连浩特市| 安远县| 承德县| 区。| 额尔古纳市| 余庆县| 英山县| 浦县| 日土县| 乌审旗|