概述
使用的是cocos creator 2.4.3版本;直接贴代码,结构如下:
在CocosDashboardresources.editorsCreator2.4.3resourcescocos2d-xcocosscriptingjs-bindingsmanual 文件夹下创建
jsb_test.hpp和jsb_test.cpp两个文件。
jsb_test.hpp内容如下:
#pragma once
namespace se {
class Object;
}
bool register_all_testio(se::Object* obj);
jsb_test.cpp代码如下:
#include "jsb_test.hpp"
#include "cocos/scripting/js-bindings/manual/jsb_conversions.hpp"
static bool jsb_Test(se::State &s)
{
CC_UNUSED std::string ok = "";
std::string result = "这是一条测试";//这里可以调用其他的C++逻辑,简写了。
ok = std_string_to_seval(result, &s.rval()); //返回string
return true;
}
SE_BIND_FUNC(jsb_Test)
bool register_all_testio(se::Object *obj)
{
se::Value nsVal;
if (!obj->getProperty("Test", &nsVal))
{
se::HandleObject jsobj(se::Object::createPlainObject());
nsVal.setObject(jsobj);
obj->setProperty("Test", nsVal);
}
se::Object *ns = nsVal.toObject();
ns->defineFunction("test", _SE(jsb_Test));
//js中直接Test.test();调用
return true;
}
然后在CocosDashboardresources.editorsCreator2.4.3resourcescocos2d-xcocosscriptingjs-bindingsmanualjsb_module_register.cpp中添加如下代码。
#include "cocos/scripting/js-bindings/manual/jsb_test.hpp"
// 注册模块
se->addRegisterCallback(register_all_testio);
最坑的是对应工程的CreatorDemobuildjsb-linkframeworksruntime-srcClassesjsb_module_register.cpp也要添加上面的代码(以我的工程为例,大家灵活应对)。
CocosDashboardresources.editorsCreator2.4.3resourcescocos2d-xcocosAndroid.mk文件添加相应的cpp文件,生成so打包就可以使用了。
LOCAL_SRC_FILES +=
scripting/js-bindings/manual/jsb_test.cpp
至此简单的手动绑定就实现了,复杂的可以查看手册实现。
https://docs.cocos.com/creator/manual/zh/advanced-topics/JSB2.0-learning.html
https://docs.cocos.com/creator/manual/zh/advanced-topics/jsb-manual-binding.html?h=jsb
最后
以上就是尊敬画板为你收集整理的Cocos Creator jsb手动绑定C++的全部内容,希望文章能够帮你解决Cocos Creator jsb手动绑定C++所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复