cocosc++怎么打印_Cocos2dx-JS绑定C++大致流程

Cococs2dx-JS 版本3.12,环境:Mac

。这里有两种情况,为修改引擎底层方法和自定义新的C++类。

首先为了保证genbindings.py 正常运行 你需要下3样东西 已安装的请略过

python 2.7.x:目前引擎里面的bindings-generator只支持python2.7.x版本

py-ymal(http://pyyaml.org/wiki/PyYAML):这是python的一个第三方包,下载页有不同系统的安装方式,可以参考generator.py会调用到这个包。

安装目录执行 python setup.py install 进行安装.

修改引擎底层方法

这个比较简单,这里做的是给UIImageView添加了一个public方法。然后在js中用一个UIImageView对象去调用这个方法。

首先在UIImageView.cpp中添加如下方法:

void ImageView::getImageDes()

{

CCLOG("this is getImageDes!!");

}

然后到工程/frameworks/cocos2d-x/tools/tojs目录下执行python脚本genbindings.py。(可以对这个脚本修改,然后只是重新绑定UIImageView相关的文件)。然后就可以在/frameworks/cocos2d-x/cocos/scripting/js-bindings/auto目录下的jsb_cocos2dx_ui_auto.cpp文件中看到相应的绑定内容。如下:

bool js_cocos2dx_ui_ImageView_getImageDes(JSContext *cx, uint32_t argc, jsval *vp)

{

JS::CallArgs args = JS::CallArgsFromVp(argc, vp);

JS::RootedObject obj(cx, args.thisv().toObjectOrNull());

js_proxy_t *proxy = jsb_get_js_proxy(obj);

cocos2d::ui::ImageView* cobj = (cocos2d::ui::ImageView *)(proxy ? proxy->ptr : NULL);

JSB_PRECONDITION2( cobj, cx, false, "js_cocos2dx_ui_ImageView_getImageDes : Invalid Native Object");

if (argc == 0) {

cobj->getImageDes();

args.rval().setUndefined();

return true;

}

JS_ReportError(cx, "js_cocos2dx_ui_ImageView_getImageDes : wrong number of arguments: %d, was expecting %d", argc, 0);

return false;

}

然后在js脚本中就可以调用getImageDes方法了,如下:

this

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值