Cocos2dx选择器

今天学习cocos2dx的时候发现原来所有选择器要求传递的回调函数的参数是有限制的,看了库中的定义后就遇到的整理如下,仅供参考,Cocos2dx版本2.2.3:

?

选择器参数说明

schedule_selector(浮点数)[float dt]

?

callfunc_selector(无参数)[void]

?

callfuncn_selector(节点)[CCNode *node]

?

callfuncND_selector(节点,任意参数)[CCNode *node,void *any]

?

callfuncO_selector(对象)[CCObject *pSender]

?

menu_selector(对象)[CCObject *pSender]

?

event_selector(事件)[CCEvent *event]

?

compare_selector(对象)[CCObject *pSender]

?

?

原始的声明如下

typedef
void
(CCObject::*SEL_SCHEDULE)(float);

typedef
void
(CCObject::*SEL_CallFunc)();

typedef
void
(CCObject::*SEL_CallFuncN)(CCNode*);

typedef
void
(CCObject::*SEL_CallFuncND)(CCNode*,
void*);

typedef
void
(CCObject::*SEL_CallFuncO)(CCObject*);

typedef
void
(CCObject::*SEL_MenuHandler)(CCObject*);

typedef
void
(CCObject::*SEL_EventHandler)(CCEvent*);

typedef
int
(CCObject::*SEL_Compare)(CCObject*);

?

对应选择器宏

#define
schedule_selector(_SELECTOR)
(SEL_SCHEDULE)(&_SELECTOR)

#define
callfunc_selector(_SELECTOR)
(SEL_CallFunc)(&_SELECTOR)

#define
callfuncN_selector(_SELECTOR)
(SEL_CallFuncN)(&_SELECTOR)

#define
callfuncND_selector(_SELECTOR)
(SEL_CallFuncND)(&_SELECTOR)

#define
callfuncO_selector(_SELECTOR)
(SEL_CallFuncO)(&_SELECTOR)

#define
menu_selector(_SELECTOR)
(SEL_MenuHandler)(&_SELECTOR)

#define
event_selector(_SELECTOR)
(SEL_EventHandler)(&_SELECTOR)

#define
compare_selector(_SELECTOR)
(SEL_Compare)(&_SELECTOR)

?

?

?

cccontrol_selector(对象,整数)[CCObject *pSender,CCControlEvent]

?

原始声明如下:

typedef
unsigned
int
CCControlEvent;

?

typedef
void
(CCObject::*SEL_CCControlHandler)(CCObject*,
CCControlEvent);

?

对应选择器宏:

#define
cccontrol_selector(_SELECTOR)
(SEL_CCControlHandler)(&_SELECTOR)

Cocos2dx选择器,布布扣,bubuko.com

时间: 2024-10-12 08:19:54

Cocos2dx选择器的相关文章

7、Cocos2dx 3.0游戏开发找小三之3.0版本号的代码风格

重开发人员的劳动成果,转载的时候请务必注明出处:http://blog.csdn.net/haomengzhu/article/details/27691337 Cocos2d-x代码风格 前面我们已经多次提到 Cocos2d-x 源自于 Cocos2d-iPhone.Cocos2d-iPhone 是一个十分出色的游戏引擎,很多优秀的 iOS平面游戏都基于 Cocos2d-iPhone 开发,而它的实现语言是 Objective-C.因此,Cocos2d-x 也就沿袭了 Objective-C

7、Cocos2dx 3.0游戏开发找小三之3.0版本的代码风格

重开发者的劳动成果,转载的时候请务必注明出处:http://blog.csdn.net/haomengzhu/article/details/27691337 Cocos2d-x代码风格 前面我们已经多次提到 Cocos2d-x 源自于 Cocos2d-iPhone.Cocos2d-iPhone 是一个十分出色的游戏引擎,许多优秀的 iOS平面游戏都基于 Cocos2d-iPhone 开发,而它的实现语言是 Objective-C.因此,Cocos2d-x 也就沿袭了 Objective-C 的

cocos2dx 3.x以上(Sprite精灵类的相关属性与创建)

// //  MainScene.cpp //  helloworld // //  Created by apple on 16/9/19. // // #include "MainScene.hpp" Scene * MainScene::createScene() { auto scene = Scene::create(); //    CCScene * scene = CCScene::create();// 创建场景 //创建层 MainScene *layer = Ma

Cocos2d-x 3.x 选择并编辑头像功能(Android、IOS双平台实现)

大连游戏行业不是太发达,最后选择在一家应用外包公司工作,在工作和业余学习过程中积累了一点微不住道的经验,希望分享给热爱游戏的小伙伴们. 在应用开发过程中会常常有用户上传头像的功能,在网上找了N多资料发现没有人具体介绍过该用cocos2d-x实现.这篇文章就来介绍一下如何在Android和IOS平台上实现该功能. 欢迎热爱游戏开发的小伙伴骚扰: 电邮:[email protected] 企鹅:601322806 先传一张完成后的图片一饱眼福: 直接上代码: 头文件 ImagePicker.h /*

cocos2d-x 源码分析 : control 源码分析 ( 控制类组件 controlButton)

源码版本来自3.1rc 转载请注明 cocos2d-x源码分析总目录 http://blog.csdn.net/u011225840/article/details/31743129 1.继承结构 control的设计整体感觉挺美的,在父类control定义了整个控制事件的基础以及管理,虽然其继承了Layer,但其本身和UI组件的实现并没有关联.在子类(controlButton,controlSwitch,controlStepper等中实现不同的UI组件).下面通过源码来分析control与

18、Cocos2dx 3.0游戏开发找小三之cocos2d-x,请问你是怎么调度的咩

重开发者的劳动成果,转载的时候请务必注明出处:http://blog.csdn.net/haomengzhu/article/details/30478251 Cocos2d 的一大特色就是提供了事件驱动的游戏框架, 引擎会在合适的时候调用事件处理函数,我们只需要在函数中添加对各种游戏事件的处理, 就可以完成一个完整的游戏了. 例如,为了实现游戏的动态变化,Cocos2d 提供了两种定时器事件: 为了响应用户输入,Cocos2d 提供了触摸事件和传感器事件: 此外,Cocos2d 还提供了一系列

cocos2dx 学习笔记

1. 动作类: CAction : CActionInterval(持续性) 和 CActionInstant(瞬时性) 帧动画 CAnimate,  帧动画序列 CAnimation 2. Cocos2dx 中所有对象都创建在堆上,然后通过指针引用: 创建方法: 1) new 对象 -> init方法, 需要使用者进行释放: 2)静态的工厂方法,不需要使用者进行释放: 3. 选择器 selector, 类似于函数指针 shedule_selector(SELECTOR) callfunc_se

Cocos2d-x学习笔记(3)

Cocos2d-x有一个包括全部其它头文件的cocos2d.h,仅仅要在使用时包括这个头文件,就能够使用引擎的全部功能.Cocos2d-x的类都放置于cocos2d的命名空间下,如引擎下的"actions/CCAction.h"中在文件首尾使用NC_CC_BEGIN和NS_CC_END来将全部类型包括在cocos2d命名空间下.在游戏中使用#define USING_NS_CC using namespace cocos2d定义的宏USING_NS_CC来说明命名空间. 1.构造函数与

cocos2d-x学习笔记2——C++语法和场景

主要内容: 一.C++语法特点简介 二.第一个HelloWorld场景 三.新建一个场景 一.C++语法特点简介 1. 函数的声明和定义分开 例如AppDelegate.h中声明的函数都在AppDelegate.cpp中定义 TIPS:按F12直接跳到Definition 2. #include预编译 在需要调用其他类中的一些方法时,必须#include其头文件 比如这里如果不#include “HelloWorld.h”就无法调用HelloWorld::scene()这个方法. 3. usin