代码部分一共有3中文件
1 .c++文件,就是自己需要的c++文件。 .h 和 .cpp
- 自动生成的c++文件 。可供js 调用的 .hpp 和 .cpp文件 (连接js 和cpp)
- 自动生成的 .js 文件 ,供自己代码中的js 直接调用
- 写c++文件,将需要调用的C++文件(.h 和 .cpp)copy到 CocosCreator\resources\cocos2d-x\tools\tojs 目录下(其实位置可以任意,只需要在后面的配置文件中正确指向就可以)
测试代码: 就是在控制台输出一句话
.h 文件
// jsbTest.h
#ifndef __JSB_TEST_H__
#define __JSB_TEST_H__
#include "cocos2d.h"
class jsbTest
{
public:
static void testlog();
};
#endif //__JSB_TEST_H
.cpp 文件
// jsbTest.cpp
#include "jsbTest.h"
USING_NS_CC;
void jsbTest::testlog()
{
CCLOG("jsbinding succeed!");
}
- 写配置文件.ini (其实就是复制修改,找一个原有的.ini文件 修改就好 ) 配置文件路径: CocosCreator\resources\cocos2d-x\tools\tojs
名字可以任意取 ,在需要执行的python文件中指定就行 这里设置 jsbTest (和c++文件名一致 方便管理)
[
jsbTest]
# the prefix to be added to the generated functions. You might or might not use this in your own
# templatesprefix = jsbTest# create a target namespace (in javascript, this would create some code like the equiv. to `ns = ns || {}`)# all classes will be embedded in that namespacetarget_namespace =# the native namespace in which this module locates, this parameter is used for avoid conflict of the same class name in different modules, as "cocos2d::Label" <-> "cocos2d::ui::Label".cpp_namespace =android_headers = -I%(androidndkdir)s/platforms/android-14/arch-arm/usr/include -I%(androidndkdir)s/sources/cxx-stl/gnu-libstdc++/4.8/libs/armeabi-v7a/include -I%(androidndkdir)s/sources/cxx-stl/gnu-libstdc++/4.8/include -I%(androidndkdir)s/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi-v7a/include -I%(androidndkdir)s/sources/cxx-stl/gnu-libstdc++/4.9/includeandroid_flags = -D_SIZE_T_DEFINED_clang_headers = -I%(clangllvmdir)s/%(clang_include)sclang_flags = -nostdinc -x c++ -std=c++11 -U __SSE__cocos_headers = -I%(cocosdir)s/cocos -I%(cocosdir)s/cocos/editor-support -I%(cocosdir)s/cocos/platform/android -I%(cocosdir)s/external/sourcescocos_flags = -DANDROIDcxxgenerator_headers =# extra arguments for clangextra_arguments = %(android_headers)s %