现在位置: 首页 > 编程语言 > 文章
回调函数是界面交互和接入各种第三方SDK的关键所在,因为回调函数的C++代码是不能自动生成的,一切的一切,都需要手写完成。 比较不错的是,Cocos2d-x引擎对于回调函数提供了完整的包装机制。我们所需要做的就是了解这个机制,并使用他。学习引擎自己的代码例子,可以比较快速准确的上手这一机制。 首先,我们在Cocos2d-x 3.0 beta版中,使用他自带的工程创建工具,新建一个跨平台的JS项目。按照惯例,这是一个hellowor...
阅读全文
我们要通过SpiderMonkey引擎的注册接口,向SpiderMonkey注册相应的从C++到JS的绑定函数,这些函数用于把JS函数调用代码转换成对应C++函数调用来执行。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 //在AppDelegate::applicationDidFinishLaunching函数中     ScriptingCore* sc = ScriptingCore::getInstance();     sc->addRegisterCallback(register_all_cocos2dx);     sc-&g...
阅读全文
对于C++来说,存在函数重载,例如: 1 2 void CCNode::setScale(float scale) void CCNode::setScale(float scaleX,float scaleY) 这两个函数的函数名是一样的,但是参数表不同。最终在编译器编译后的函数签名不一样。 但是在JavaScript中并没有这种机制。怎么破?存在两种情况: 第一种、JS需要调用重载的C++函数接口 我们就以上面的函数为例,来看看在cxx-generator的自动生成代码中,函数重...
阅读全文
上一篇我们讲了按键回调,这一次我们来说说各种逻辑上的回调函数。 Cocos2d-x里面一共有三大类回调函数,第一是按键回调CCMenu相关的,第二类是定时器相关的回调 Schedule,第三类是Action相关的回调CallFunc。这些回调从最初的引擎版本中就存在着,一直到现在。 一、绑定代码 在JSB的解决方案中,对于后两类函数,引擎统一封装成JSCallbackWrapper及其子类。 1 2 3 4 5 6 7 8 9 10 11 12 13 1...
阅读全文
2019年08月24日 编程语言 ⁄ 共 22579字 暂无评论
前面的文章中讲过,在游戏启动时,会调用大量的addRegisterCallback函数,向SpiderMonkey注册Cocos2d-x引擎的函数。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ScriptingCore* sc = ScriptingCore::getInstance(); sc->addRegisterCallback(register_all_cocos2dx); sc->addRegisterCallback(register_all_cocos2dx_extension); sc->addRegisterCallback(register_cocos2dx_js...
阅读全文
2019年08月24日 编程语言 ⁄ 共 2722字 暂无评论
上篇我们以Sprite为例,分析了注册函数。但其中我们似乎遗漏了一个地方,那就是构造函数。因为Cocos2d-x在C++层使用的是工场函数来生成对象,而不是构造函数。所以在JS层代码中,也需要有相应的对应机制来处理这件事。 看一下jsb_cocos2dx_auto.hpp 1 2 3 4 5 6 extern JSClass  *jsb_cocos2d_Sprite_class; extern JSObject *jsb_cocos2d_Sprite_prototype; JSBool js_cocos2dx_Sprite_constructor(...
阅读全文
问题背景 [cpp] view plaincopy #include <iostream>       using namespace std;       vector<int> doubleValues (const vector<int>& v)   {       vector<int> new_values( v.size() );       for (auto itr = new_values.begin(), end_itr = new_values.end(); itr != end_itr; ++itr )       {           new_values.push_back( 2 * *itr );       }       return ne...
阅读全文
声明:本文参考了Alex Allain的文章http://www.cprogramming.com/c++11/c++11-lambda-closures.html 加入了自己的理解,不是简单的翻译 C++11终于知道要在语言中加入匿名函数了。匿名函数在很多时候可以为编码提供便利,这在下文会提到。很多语言中的匿名函数,如C++,都是用Lambda表达式实现的。Lambda表达式又称为lambda函数。我在下文中称之为Lambda函数。 为了明白Lambda函数的用处,请务必先搞明白C++中的自动类型...
阅读全文
2019年08月22日 编程语言 ⁄ 共 5122字 评论关闭
该系列博客的目录:     概述与请求方式: http://blog.csdn.net/hyzhou33550336/article/details/41620595 (请先看这篇了解公共请求参数)     实例管理:   http://blog.csdn.net/hyzhou33550336/article/details/41620749     数据库管理: http://blog.csdn.net/hyzhou33550336/article/details/41620833     数据迁入:   http://blog.csdn.net/hyzhou33550336/article/details/41620863     账号管理:   http://blog.csdn.ne...
阅读全文
2019年08月21日 编程语言 ⁄ 共 980字 评论关闭
poj2478--裸题 题解:就是求n以内 所有互素的数 的组合数! 即n以内所有整数的欧拉函数之和! 欧拉函数知识点 可以参考白书。 // 2478 Accepted 4084K 235MS C++ 620B // 2478 Accepted 8000K 282MS C++ 735B #include <iostream>//详细可以参见 白书! #include<cstdio> #include<cstring> using namespace std; #define N 1000010 int phi[N]; void Eula() { int i,j; memset(phi,0,sizeof(phi...
阅读全文