求 creator 1.7 版本的 JSB 2.0 绑定小白教程

官方文档提供的JSB 2.0绑定教程搞不懂,有哪位大神能给个小白教程或者例子。

我也在试,我有进展了告诉你

今天搞了一整天… 把经历写一下 帮助大家
主要参考了 http://forum.cocos.com/t/js-c-jsb-jsbinding/37909 谢谢作者 @S.H.I.E.L.D

环境准备

  1. 下载Python 2.7.x (一定要32位的) 并配置环境变量
  2. 下载并安装Android SDK,NDK 配置环境变量
  3. 下载安装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宏

1赞

32个赞,之前没时间没搞成,项目用了其它方法做了,用空再按你的方法试试~~~