官方文档提供的JSB 2.0绑定教程搞不懂,有哪位大神能给个小白教程或者例子。
我也在试,我有进展了告诉你
今天搞了一整天… 把经历写一下 帮助大家
主要参考了 http://forum.cocos.com/t/js-c-jsb-jsbinding/37909 谢谢作者 @S.H.I.E.L.D
环境准备
- 下载Python 2.7.x (一定要32位的) 并配置环境变量
- 下载并安装Android SDK,NDK 配置环境变量
- 下载安装CocosCreator,新建一个Helloworld项目 CocosCreator里的模板选择link,就是共享引擎代码方式
主要软件
1.安装PyYAML
pip install PyYAML
2.安装Cheetah
下载后解压(之前说一定要在{PYTHON_ROOT}\Lib\site-packages,看起来好像不需要,随意就可)
运行命令python setup.py install
期间如果警告说没有C编译器,按照提示下载安装后就可
http://aka.ms/vcpython27
不装也可以
3.测试安装后的成果
执行
{COCOSCREATOR_ROOT}\resources\cocos2d-x\tools\tojs\genbindings.py
如果不是32位的Python会在这里报错
LibclangError: [Error 193] %1 不是有效的 Win32
运气好的话能看到
Generating javascript bindings succeeds.
##实施绑定
由于要在Android上搞,所以没考虑用Visual Studio
###1.将测试的两个文件.h和.cpp
////////////////////////////////////////////jsbTest.h
#ifndef __JSB_TEST_H__
#define __JSB_TEST_H__
#include "cocos2d.h"
class jsbTest
{
public:
static void testlog();
};
#endif //__JSB_TEST_H
///////////////////////////////////////////jsbTest.cpp
#include "jsbTest.h"
USING_NS_CC;
void jsbTest::testlog()
{
CCLOG("jsbinding succeed! oh yeah!");
}
拷贝到…{COCOSCREATOR_ROOT}\resources\cocos2d-x\cocos\jsbTest
2.修改ini配置
拷贝一个cocos2dx_ui.ini 改名为 jsbTest.ini ,主要修改以下内容
1.第一行[cocos2dx_ui] 修改为:[jsbTest]
2.prefix = jsbTest
3.target_namespace =<留空>
4.cpp_namespace = <留空>
5.headers = %(cocosdir)s/cocos/jsbTest/jsbTest.h
6.replace_headers =<留空>
7.classes = jsbTest
8.classes_need_extend =<留空>
9.余下所有参数的值都<留空>
在ini文件所在目录下找到:genbindings.py
找到约152行的:cmd_args,修改大括号里内容,添加:
‘jsbTest.ini’: (‘jsbTest’, ‘jsb_jsbTest_auto’)
3.生成绑定文件
命令行运行:genbindings.py
绑定成功会出现:Generating javascript bindings succeeds 的字样
然后进入目录:
{COCOSCREATOR_ROOT}\resources\cocos2d-x\cocos\scripting\js-bindings\auto
应该可以在最下面找到jsb_jsbTest_auto.cpp文件和jsb_jsbTest_auto.hpp两个文件,
这就是绑定后的源文件,
进入目录
{COCOSCREATOR_ROOT}\resources\cocos2d-x\cocos\scripting\js-bindings\auto\api
应该可以看到jsb_jsbTest_auto_api.js,这个是对应的JS文件
上述都在link模板下操作,如果大家选的是default模板,这部分应该从引擎目录拷贝到项目目录里去。
4.编译生成的内容
找到
{COCOSCREATOR_ROOT}\resources\cocos2d-x\cocos\scripting\js-bindings\proj.android\Android.mk
在LOCAL_SRC_FILES := 里添加一行
…/auto/jsb_jsbTest_auto.cpp \
在
{PROJCT_ROOT}\build\jsb-link\frameworks\runtime-src\Classes\jsb_module_register.cpp 里
头部加入
#include "jsb_jsbTest_auto.hpp"
然后在函数bool jsb_register_all_modules()里
se->addRegisterCallback(register_all_jsbTest);
然后就可以用CocosCreator 编译生成了
================一些未整理的细节==========================
1.如果要使用creator自带的模拟器,需要导出jspTest里的类 class 要加上 CC_DLL宏
32个赞,之前没时间没搞成,项目用了其它方法做了,用空再按你的方法试试~~~