Cocos2D-x权威指南: CCNode类方法:
5.1.4 画图节点CCNode和图层CCLayer
CCNode中提供的方法,在public块中的方法主要有下面几个部分:
1、针对节点显示的属性信息读写
2、针对节点变换的属性信息读写
3、针对子节点的管理相关方法
4、针对节点数据绑定的相关方法
5、针对节点生命周期的相关方法
6、针对节点处理动作CCAction的相关方法
7、针对节点定时任务的相关方法
8、针对节点坐标变换的相关方法在CCNode中的节点都有自己的坐标系,称为节点坐标系,当节点坐标系变换后该节点的全部子节点都会随之变换。
节点在加入到场景时会參考节点的锚点,锚点缺省定义为该节点的中心,在贴图时候会以锚点为中心,改变锚点并没有改变节点的位置,仅仅是改变了贴图的位置。
Cocos2d-x中的世界坐标系和openGL坐标系一致,左下角为0,0点,x轴向右,y轴向上。
CCScene类是CCNode类的子类。和CCNode相比,它仅仅是多了自己的锚点,在屏幕的中间位置。
CCLayer也是CCNode的子类,相比CCNode添加了用户的交互功能。
class CC_DLL CCNode : public CCObject
{
public:
CCNode(void);
virtual ~CCNode(void);
virtual bool init(); //初始化节点
static CCNode * create(void); //创建节点对象
const char* description(void);
virtual void setZOrder(int zOrder); //设定节点Z轴排序
virtual void _setZOrder(int z);
virtual int getZOrder();
virtual void setVertexZ(float vertexZ);//设置Z坐标
virtual float getVertexZ();
virtual void setScaleX(float fScaleX); //设定X轴缩放系数(0-1)
virtual float getScaleX();
virtual void setScaleY(float fScaleY); //设定Y轴缩放系数
virtual float getScaleY();
virtual void setScale(float scale); //设定缩放系数
virtual float getScale();
virtual void setScale(float fScaleX,float fScaleY);
virtual void setPosition(const CCPoint &position); //设定坐标
virtual const CCPoint& getPosition(); //获取坐标
virtual void setPosition(float x, float y);
virtual void setPositionX(float x);
virtual float getPositionX(void);
virtual void setPositionY(float y);
virtual float getPositionY(void);
virtual void setSkewX(float fSkewX); //设定x轴扭曲系数
virtual float getSkewX();
virtual void setSkewY(float fSkewY); //设定y轴扭曲系数
virtual float getSkewY();
virtual void setAnchorPoint(const CCPoint& anchorPoint); //设定锚点
virtual const CCPoint& getAnchorPoint(); //获取锚点
virtual const CCPoint& getAnchorPointInPoints();//获取锚点绝对坐标
virtual void setContentSize(const CCSize& contentSize); //设定节点尺寸
virtual const CCSize& getContentSize() const; //获取节点尺寸
virtual void setVisible(bool visible); //设置节点是否可见
virtual bool isVisible(); //返回节点是否可见
virtual void setRotation(float fRotation);//设置旋转角度
virtual float getRotation(); //获取旋转角度
virtual void setRotationX(float fRotaionX);//设置X轴旋转角度
virtual float getRotationX();
virtual void setRotationY(float fRotationY);//设置Y轴旋转角度
virtual float getRotationY(); //当节点的ZOrder同样时,使用该值做以区分
virtual void setOrderOfArrival(unsigned int uOrderOfArrival);
virtual unsigned int getOrderOfArrival();
//设置GLServer状态
virtual void setGLServerState(ccGLServerState glServerState);
//获取GLServer状态
virtual ccGLServerState getGLServerState();
//设置是否忽略锚点位置
virtual void ignoreAnchorPointForPosition(bool ignore);
//获取是否忽略锚点位置
virtual bool isIgnoreAnchorPointForPosition();
virtual void addChild(CCNode * child); //加入子节点
virtual void addChild(CCNode * child, int zOrder);
virtual void addChild(CCNode* child, int zOrder, int tag);
virtual CCArray* getChildren(); //获取全部子节点
virtual void setParent(CCNode* parent); //设置父节点
virtual CCNode* getParent(); //获取父节点
virtual void removeFromParent(); //从父节点中移除
//从父节点移除、參数决定是否清楚本节点
virtual void removeFromParentAndCleanup(bool cleanup);
virtual void removeChild(CCNode* child); //移除某个子节点
virtual void removeChild(CCNode* child, bool cleanup);
virtual void removeChildByTag(int tag); //移除某个tag相应的子节点
virtual void removeChildByTag(int tag, bool cleanup);
virtual void removeAllChildren(); //移除全部子节点
virtual void removeAllChildrenWithCleanup(bool cleanup);
virtual void reorderChild(CCNode * child, int zOrder);//重排某个子节点
virtual void sortAllChildren(); //对全部子节点重拍
virtual CCGridBase* getGrid(); //获取网格对象
virtual void setGrid(CCGridBase *pGrid); //设置网格对象
virtual int getTag() const; //获取当前节点的Tag
virtual void setTag(int nTag); //设置当前节点的Tag
virtual void* getUserData(); //获取用户数据
virtual void setUserData(void *pUserData); //设置用户数据
virtual CCObject* getUserObject(); //获取用户数据对象
virtual void setUserObject(CCObject *pUserObject); //设置用户数据对象
virtual CCGLProgram* getShaderProgram(); //获取Shader程序
virtual void setShaderProgram(CCGLProgram *pShaderProgram);
virtual CCCamera* getCamera(); //获取摄像机对象
virtual bool isRunning(); //获取当前Node是否在运行
virtual void registerScriptHandler(int handler); //注冊脚本Handler
virtual void unregisterScriptHandler(void);
inline int getScriptHandler() { return m_nScriptHandler; };
//运行Lua脚本计划任务
void scheduleUpdateWithPriorityLua(int nHandler, int priority);
virtual void onEnter() ; //进入节点对象
virtual void onEnterTransitionDidFinish(); //进入节点动画完毕
virtual void onExit(); //离开节点对象
virtual void onExitTransitionDidStart(); //离开节点动画完毕
virtual void cleanup(void); //停止全部动画和调度
virtual void draw(void); //画图,渲染当前节点函数
virtual void visit(void); //递归遍历当前节点树
CCRect boundingBox(void); //返回节点区域
//设置当前节点的ActionManager
virtual void setActionManager(CCActionManager* actionManager);
virtual CCActionManager* getActionManager();
CCAction* runAction(CCAction* action); //让当前节点运行动作
void stopAllActions(void); //停止全部动作
void stopAction(CCAction* action); //停止某一个动作
void stopActionByTag(int tag); //停止标记为tag的动作
CCAction* getActionByTag(int tag); //获取标记为tag的动作
unsigned int numberOfRunningActions(void); //返回绑定该节点的动作数
virtual void setScheduler(CCScheduler* scheduler); //设置任务管理器
virtual CCScheduler* getScheduler(); //获取任务管理器
bool isScheduled(SEL_SCHEDULE selector); //是否运行了某个任务
void scheduleUpdate(void); //运行定时调用任务update
//依照指定优先级运行update任务
void scheduleUpdateWithPriority(int priority);
void unscheduleUpdate(void); //停止update任务
//指定依照的时间间隔和等待时间,指定次数运行某个任务
void schedule(SEL_SCHEDULE selector, float interval,
unsigned int repeat, float delay);
//指定依照的时间间隔运行某个任务
void schedule(SEL_SCHEDULE selector, float interval);
//等待一定时间以后运行某个任务
void scheduleOnce(SEL_SCHEDULE selector, float delay);
void schedule(SEL_SCHEDULE selector); //运行任务
void unschedule(SEL_SCHEDULE selector); //取消运行某个任务
void unscheduleAllSelectors(void); //取消运行全部任务
void resumeSchedulerAndActions(void); //恢复节点任务和动作
void pauseSchedulerAndActions(void); //暂停节点任务和动作
virtual void update(float delta); //定时任务回调方法
void transform(void); //矩阵坐标变换
void transformAncestors(void); //预设变换矩阵
virtual void updateTransform(void); //变换方法
//仿射变换从当前节点到父节点
virtual CCAffineTransform nodeToParentTransform(void);
//仿射变换从父节点到当前节点
virtual CCAffineTransform parentToNodeTransform(void);
//仿射变换当前节点到世界节点
virtual CCAffineTransform nodeToWorldTransform(void);
//仿射变换世界节点到当前节点
virtual CCAffineTransform worldToNodeTransform(void);
//转化为节点空间坐标,相对于节点左下角,与锚点无关
CCPoint convertToNodeSpace(const CCPoint& worldPoint);
//转化为世界空间坐标,相对于节点左下角,与锚点无关
CCPoint convertToWorldSpace(const CCPoint& nodePoint);
//转化为节点空间坐标,相对于节点左下角,相对于锚点
CCPoint convertToNodeSpaceAR(const CCPoint& worldPoint);
//转化为世界空间坐标,相对于节点左下角,相对于锚点
CCPoint convertToWorldSpaceAR(const CCPoint& nodePoint);
//从触屏对象转化为节点空间坐标
CCPoint convertTouchToNodeSpace(CCTouch * touch);
//从触屏对象转化为节点空间坐标,输入输出都相对于锚点
CCPoint convertTouchToNodeSpaceAR(CCTouch * touch);
//设置变换
void setAdditionalTransform(const CCAffineTransform&
additionalTransform);
//获取组件
CCComponent* getComponent(const char *pName) const;
//加入组件
virtual bool addComponent(CCComponent *pComponent);
//移除组件
virtual bool removeComponent(const char *pName);
//移除全部组件
virtual void removeAllComponents();
private:
void childrenAlloc(void);
void insertChild(CCNode* child, int z);
void detachChild(CCNode *child, bool doCleanup);
CCPoint convertToWindowSpace(const CCPoint& nodePoint);
......
}
Cocos2D-x权威指南: CCNode类方法:的更多相关文章
- Javascript权威指南阅读笔记--第3章类型、值和变量(1)
之前一直有个想法,好好读完JS权威指南,便于自己对于JS有个较为全面的了解.毕竟本人非计算机专业出生,虽然做着相关行业的工作,但总觉得对于基础的掌握并没有相关专业学者扎实,正好因为辞职待业等原因,还是 ...
- 《果壳中的C# C# 5.0 权威指南》 - 学习笔记
<果壳中的C# C# 5.0 权威指南> ========== ========== ==========[作者] (美) Joseph Albahari (美) Ben Albahari ...
- JavaScript权威指南 - 函数
函数本身就是一段JavaScript代码,定义一次但可能被调用任意次.如果函数挂载在一个对象上,作为对象的一个属性,通常这种函数被称作对象的方法.用于初始化一个新创建的对象的函数被称作构造函数. 相对 ...
- JavaScript权威指南 - 对象
JavaScript对象可以看作是属性的无序集合,每个属性就是一个键值对,可增可删. JavaScript中的所有事物都是对象:字符串.数字.数组.日期,等等. JavaScript对象除了可以保持自 ...
- JavaScript权威指南 - 数组
JavaScript数组是一种特殊类型的对象. JavaScript数组元素可以为任意类型,最大容纳232-1个元素. JavaScript数组是动态的,有新元素添加时,自动更新length属性. J ...
- 《Ansible权威指南》笔记(3)——Ad-Hoc命令集,常用模块
五.Ad-Hoc命令集1.Ad-Hoc命令集通过/usr/bin/ansible命令实现:ansible <host-pattern> [options] -v,--verbose ...
- 《Ansible权威指南》笔记(1)——安装,ssh密钥登陆,命令
2016-12-23 读这本<Ansible权威指南>学习ansible,根据本书内容和网上的各种文档,以及经过自己测试,写出以下笔记.另,这本书内容很好,但印刷错误比较多,作者说第二版会 ...
- 读《Android编程权威指南》
因为去年双十二购买了一折的<Android 编程权威指南(第一版)>,在第二版出来后图灵社区给我推送了第二版的优惠码,激动之余就立马下单购买电子书,不得不说Big Nerd Ranch G ...
- maven权威指南学习笔记(五)—— POM
1. 简介 Archetype插件通过 pom.xml 文件创建了一个项目.这就是项目对象模型 (POM),一个项目的声明性描述. 当Maven运行一个目标的时候,每个目标都会访问定 义在项目POM里 ...
随机推荐
- mongodb的副本集总结
主节点A.备份节点B.仲裁者C.是否真的需求仲裁者? 需要. 怎样才算大多数表格如下: 怎样才算大多数表格 副本集中的成员总数 副本集中的大多数 1 1 2 2 3 2 4 3 5 3 6 4 7 4 ...
- HTTP状态码(HTTP Status codes)简介
HTTP可能大家都熟悉,就是超文本传输协议.浏览器通过HTTP与WEB Server通讯(也有一些其它软件比如IM使用HTTP协议传递数据),把我们的请求(HTTP Request)传递给服务器,服务 ...
- 2.Android Studio系列教程2——基本设置与运行
原文链接:http://stormzhang.com/devtools/2014/11/28/android-studio-tutorial2/ 一.项目结构 二.Android Studio ...
- mysql数据库编码
MySQL数据库默认的编码是: character set :latin1 collation : latin1_swedish_ci 查看MySQL支持的编码: mysql> show cha ...
- MeasureSpec学习
在自定义View和ViewGroup的时候,我们经常会遇到int型的MeasureSpec来表示一个组件的大小,这个变量里面不仅有组件的尺寸大小,还有大小的模式. 这个大小的模式,有点难以理解.在系统 ...
- ajax+ashx 完美实现input file上传文件
1.input file 样式不能满足需求 <input type="file" value="浏览" /> IE8效果图: Firefox效 ...
- 【转】深入理解Java内存模型(六)——final
与前面介绍的锁和volatile相比较,对final域的读和写更像是普通的变量访问.对于final域,编译器和处理器要遵守两个重排序规则: 在构造函数内对一个final域的写入,与随后把这个被构造对象 ...
- C++拾遗(四)指针相关
指针声明与初始化 在将指针初始化为一个确定的地址后,才能安全的对指针使用 *操作. 将整数赋值给指针时要使用强制转换(typeName *). 分配内存 C中用malloc(); C++更提倡使用ne ...
- 10.使用final关键字修饰一个变量时...
10.使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变? 答:引用不能变,不能将引用再次指向另一个新的对象,但引用所指向的对象中的内容是可以改变的. 补充: 1.对于基本类型,f ...
- [译] 什么是移动友好的 - Mobile-friendliness
什么是移动友好的? 移动友好到底意味着什么取决于您与谁讨论它. 我们不妨这样理解: 移动友好的设计以 表现力, 内容和性能 三方面为目标来改善用户体验. 表现力 - Presentation ...