Cocos2d-x-3.x版 Js Binding 的手动绑定实现

  次阅读 来源:互联网(转载协议) 2015-09-28 10:56 我要评论(0)

网上流传的是一份2.x版本的,现在已更新到3.x,经过千辛万苦,终于调试成功。

1 .首先定义待绑定的类

AnimationKoo.h

#ifndef __AnimationKoo_H__

#define __AnimationKoo_H__

namespace ls{

class AnimationKoo{

public:

virtual void funcTest();

static AnimationKoo * create();

};

}

#endif // __AnimationKoo_H__

AnimationKoo.cpp

#include "cocos2d.h"

#include "cocos2d_specifics.hpp"

#include " AnimationKoo.h"

void ls::AnimationKoo::funcTest(){

CCLOG("binding test...");

}

ls::AnimationKoo * ls::AnimationKoo::create()

{

AnimationKoo * ret = new AnimationKoo();

return ret;

}

定义类在ls命名空间,我们测试funcTest方法

2,添加绑定代码到AppDelegate 的类

在applicationDidFinishLaunching方法里面,添加sc->addRegisterCallback(register_all_ls);//手动绑定的类

编写 jsb_ls_auto.h ,如下

#include "jsapi.h"

#include "jsfriendapi.h"

#include "ScriptingCore.h"

voidjs_register_ls_Animationkoo(JSContext* cx, JS::HandleObject global);

voidjs_cocos2d_Animationkoo_finalize(JSFreeOp *fop, JSObject *obj);

booljs_cocos2dx_Animationkoo_create(JSContext *cx, uint32_t argc, jsval *vp);

static booljs_is_native_obj(JSContext *cx, uint32_t argc, jsval *vp);

booljs_cocos2dx_AnimationkooFuncTest_getDescription(JSContext *cx, uint32_t argc, jsval *vp);

booljs_cocos2dx_Animationkoo_constructor(JSContext *cx, uint32_t argc, jsval *vp);

voidregister_all_ls(JSContext* cx, JS::HandleObject obj);

没错,就是这么坑爹,需要写这么多东西。

下面是它的实现

jsb_ls_auto.cpp

#include "cocos2d.h"

#include "koogame/Animationkoo.h"

#include "jsapi.h"

#include "jsb_ls_auto.h"

#include "cocos2d_specifics.hpp"

// 定义 js 端的类型

JSClass*jsb_LsLeafsoar_class;

JSObject *jsb_LsLeafsoar_prototype;

// 实现 ls 命名空间下的类绑定

void register_all_ls(JSContext* cx, JS::HandleObject obj) {

JS::RootedObject ns(cx);

get_or_create_js_obj(cx, obj, "ls", &ns);

本站文章信息来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • 全球陷入"区块链狂热"潮,大规模应用还需等待

    全球陷入"区块链狂热"潮,大规模应用还需等待

  • 汤晓鸥:人工智能的中国式文艺复兴

    汤晓鸥:人工智能的中国式文艺复兴

  • 马云的新零售?张近东的智慧零售?抑或是刘强东的第四次零售革命?

    马云的新零售?张近东的智慧零售?抑或是刘强东的第四次零售革命?

  • 区块链最近太火,但A股多家公司明确表态不考虑涉足

    区块链最近太火,但A股多家公司明确表态不考虑涉足

网友点评网友点评
阅读推荐阅读推荐

算法 任何一个入门的软件开发人员都会听到这句话:算法是软件的灵魂!近年来大火的机器学习即是在算法在人工智能上的集中体现。今日头条通...

据《日本经济新闻》报道,日本东京大学教授稻叶雅幸等人开发出再现日本人骨骼肌肉构造的机器人。机器人各部位的肌肉和骨骼长度与日本人的平...

以奥黛丽-赫本为原型打造的人形机器人索菲娅首次拜访了印度。索菲娅是世界上首位获得公民身份的机器人,她在12月30日出现在了印度理工学院...

在查获现场,代售点电脑旁的一台机器人通过敲击电脑键盘抢票。 广州日报惠州讯 (全媒体记者秦仲阳 通讯员张中铃摄影报道)2018年春运售票已...