文档章节

cocos2d-X学习之主要类介绍:节点CCNode

andyhe91
 andyhe91
发布于 2014/10/11 10:59
字数 940
阅读 530
收藏 0
点赞 0
评论 0

首先是类结构: 
wps_clip_image-19960

可以看到CCNode 几乎是游戏中处理的大部分类的父类,其主要有以下函数:

virtual int  getZOrder (void) //获取节点的顺序

virtual const CCPoint &  getPosition (void) //获取节点的位置

virtual void  setPosition (const CCPoint &var) //设置节点的位置

virtual CCArray *  getChildren (void) //获取其所有子节点

virtual CCCamera *  getCamera (void)//获取其对应的摄像机

virtual bool  getIsVisible (void) //判断节点是否可见

virtual void  setIsVisible (bool var) //设置节点可见性

virtual const CCPoint &  getAnchorPoint (void) //获取节点的锚点的位置

virtual void  setAnchorPoint (const CCPoint &var) //设置节点的锚点位置

virtual bool  getIsRunning (void) //判断节点是否在运行

virtual CCNode *  getParent (void)//获取父及节点指针

virtual void  setParent (CCNode *var) //设置节点的父节点

virtual int  getTag (void) //获取节点的tag

virtual void  setTag (int var) //设置节点的tag

char *  description (void) //返回节点的描述

virtual void  onEnter () //进入节点时的回调函数

virtual void  onEnterTransitionDidFinish ()//进入节点后的回调函数

virtual void  onExit ()//离开节点时的回调函数

virtual void  addChild (CCNode *child)//增加节点

virtual void  addChild (CCNode *child, int zOrder) //通过顺序添加节点

virtual void  addChild (CCNode *child, int zOrder, int tag)//通过顺序和tag添加节点

void  removeFromParentAndCleanup (bool cleanup)//删除父节点中的当前节点并清除动作及回调函数

virtual void  removeChild (CCNode *child, bool cleanup) //删除节点

void  removeChildByTag (int tag, bool cleanup)//通过tag删除节点

virtual void  removeAllChildrenWithCleanup (bool cleanup)//删除节点并清除动作及回调函数

CCNode *  getChildByTag (int tag)//通过tag获取节点

virtual void  reorderChild (CCNode *child, int zOrder)//根据order重新排序

virtual void  cleanup (void)//清除动作

virtual void  draw (void)//绘制自己

virtual void  visit (void)//访问节点

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)//正在运行的动作的总数

void  schedule (SEL_SCHEDULE selector)//定义一个定时器

void  schedule (SEL_SCHEDULE selector, ccTime interval)//定义一个定时器

void  unschedule (SEL_SCHEDULE selector)//取消一个定时器

void  unscheduleAllSelectors (void)//取消所有定时器

void  resumeSchedulerAndActions (void)//恢复定时器和动作

void  pauseSchedulerAndActions (void)//暂停定时器和动作

static CCNode *  node (void)//生成一个节点

CCNode是cocos2d-x的渲染链,写游戏基本上就是和他打交道了,cocos2d-x同时只能渲染一个CCScene,因此CCScene是渲染的根节点。在构建游戏时,一般是一个Scene中添加一个或者多个CCLayer,一个Layer中又添加多个CCSprite或者CCMenu,CCSprite中还可以添加CCParticleSystem等等。这样就构建了一个渲染树,cocos2d-x历遍这个树来将图像显示在屏幕上。

coco2d-x的渲染实际上是调用visit()函数来完成的:即visit()这个函数调用它包含的Child的zOrder<0的visit()函数,之后调用draw()函数,再调用Child的zOrder>=0的visit()函数,它实际上是一个深度优先的算法。他的Child是按照zOrder排序的,以保证渲染的正确性。draw()的作用是绘制自己。在CCSprite这些确实需要绘制的类中,draw()调用openGL的函数来完成绘制功能——把一个纹理映射到一个矩形上。 

如果要自定义绘制一些图像,可以重写draw()函数,不过不要忘记调用父类的draw()函数。 

可以进行网状关系的管理,其实CCScene,CCLayer也是一个CCNode.它提供节点增删,包含,提供节点缩放,每个节点有一个照相机,提供动画支持,也就是说每一个从CCNode派生的类都可以执行动画操作;


© 著作权归作者所有

共有 人打赏支持
andyhe91
粉丝 58
博文 124
码字总数 209109
作品 0
长沙
Cocos2D-x权威指南:核心类成员CCNode

节点类(CCNode)是Cocos2D-x中的主要类,继承自CCObject。继承关系如图3-2所看到的。 不论什么须要画在屏幕上的对象都是节点类。 最经常使用的节点类包含场景类(CCScene)、布景层类(CCL...

技术mix呢 ⋅ 2017/11/08 ⋅ 0

cocos2d-x学习笔记18:内存管理01:概述

一、概述 cocos2d-x最初移植自cocos2d的objective C版本。因此,在内存管理上,使用了和NSObject类似的引用计数器方法,相关接口放置在CCObject类中。 二、引用计数器——手动管理内存 CCOb...

技术小胖子 ⋅ 2017/11/14 ⋅ 0

游戏开发记录120811:cocos2d-x引擎学习---目录结构及主要类

1-Cocos2d-x目录结构 Cocos2d-x的目录结构如下: 目录的具体结构介绍如下: Box2D:物理引擎Box2D的相关源文件 Chipmunk:物理引擎chipmunk的相关源文件 cocos2dx:cocos2d-x引擎的核心部分,...

Matrix4X4 ⋅ 2012/08/12 ⋅ 0

跟着石头哥哥学cocos2d-x(二)---2dx跨平台编译以及2dx概述

ps:目录是2dx概述!!! 上一节中我大概简述了2dx引擎环境的搭建,在交叉编译一概而过,这一节我将详细说下这方面的内容, 有人提出不用cygwin来编译,用adt毫无压力,额 我只想说 adt从我搞...

石头哥哥 ⋅ 2013/11/13 ⋅ 8

Cocos2d-x2.0 RotateWorldTest深入分析

[Cocos2d-x相关教程来源于红孩儿的游戏编程之路CSDN博客地址:http://blog.csdn.net/honghaier] 红孩儿Cocos2d-X学习园地QQ2群:44208467加群写:Cocos2d-x 红孩儿Cocos2d-X学习园地QQ群:2...

长平狐 ⋅ 2013/03/19 ⋅ 0

Cocos2d-x 2.0 网格动画深入分析

[Cocos2d-x相关教程来源于红孩儿的游戏编程之路CSDN博客地址:http://blog.csdn.net/honghaier] 红孩儿Cocos2d-X学习园地QQ2群:44208467 加群写:Cocos2d-x 红孩儿Cocos2d-X学习园地QQ群:2...

长平狐 ⋅ 2013/03/19 ⋅ 1

CCNode类详解

1 CCNode是cocos2d-x中一个很重要的类,CCNode是场景、层、菜单、精灵等的父类。而我们在使用cocos2d-x时,接触最多的就是场景、层、菜单、精灵等。所以有必要先弄懂CCNode类 2 CCObject类是...

千山万水 ⋅ 2014/09/29 ⋅ 0

世界坐标系,本地坐标系,opengl坐标系,屏幕坐标系

bool HelloWorld::init(){ bool bRet = false; do { CCBREAKIF(! CCLayer::init());//opengl的坐标系和世界坐标系相同,都是以屏幕左下角为原点,向右为x轴的增加方向,向上为y轴的增加方向/...

_子墨 ⋅ 2014/12/02 ⋅ 0

cocos2d-x 基本概念的学习

cocos2d-x 基本概念的学习 我们把内容相对不变的游戏元素成为,游戏在场景之间的切换称为。CCScene 是场景之下的游戏元素。CCLayer 属于层,是场景中的课件图形。如主角。CCSprite 和。CCNod...

Cosven ⋅ 2014/02/02 ⋅ 0

Cocos2d-x 2.0 按键加速处理深入分析

[Cocos2d-x相关教程来源于红孩儿的游戏编程之路CSDN博客地址:http://blog.csdn.net/honghaier 红孩儿Cocos2d-X学习园地QQ2群:44208467 Cocos2d-x 2.0 按键加速处理深入分析 另:本章所用C...

长平狐 ⋅ 2013/03/19 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Spring Bean基础

1、Bean之间引用 <!--如果Bean配置在同一个XML文件中,使用local引用--><ref bean="someBean"/><!--如果Bean配置在不同的XML文件中,使用ref引用--><ref local="someBean"/> 其实两种......

霍淇滨 ⋅ 29分钟前 ⋅ 0

05、基于Consul+Upsync+Nginx实现动态负载均衡

1、Consul环境搭建 下载consul_0.7.5_linux_amd64.zip到/usr/local/src目录 cd /usr/local/srcwget https://releases.hashicorp.com/consul/0.7.5/consul_0.7.5_linux_amd64.zip 解压consu......

北岩 ⋅ 31分钟前 ⋅ 0

Webpack 4 api 了解与使用

webpack 最近升级到了 v4.5+版 01 官方不再支持 node4 以下版本 官方不再支持 node4 以下版本官方不再支持 node4 以下的版本,所以如果你的node版本太低,先开始升级node吧!话说node10 ...

NDweb ⋅ 41分钟前 ⋅ 0

使用nodeJs安装Vue-cli

Vue脚手架就是一个Vue框架开发环境 脚手架的意思是帮你快速开始一个vue的项目,也就是给你一套vue的结构,包含基础的依赖库,只需要 npm install就可以安装,让我们不需要为了编辑或者一些其...

木筏笔歆 ⋅ 今天 ⋅ 0

【微信小程序开发实战】0x00.开发前准备工作

写在开始 本人资深后端码农一枚,近期项目需求,接触到了微信小程序,将学习过程整理成文分享给小伙伴们,由于是边学边整理难免有表述不对的地方,望大家及时指正,感谢。 本人微信号: dream...

dreamans ⋅ 今天 ⋅ 0

linux redis的安装和php7下安装redis扩展

安装redis服务器 (1)下载安装包: $ wget http://download.redis.io/releases/redis-2.8.17.tar.gz (2)编译程序: $ tar xzf redis-2.8.17.tar.gz $ cd redis-2.8.17 $ make $ cd src &&......

concat ⋅ 今天 ⋅ 0

Guava EventBus源码解析

一、EventBus使用场景示例 Guava EventBus是事件发布/订阅框架,采用观察者模式,通过解耦发布者和订阅者简化事件(消息)的传递。这有点像简化版的MQ,除去了Broker,由EventBus托管了订阅&...

SaintTinyBoy ⋅ 今天 ⋅ 0

http怎么做自动跳转https

Apache 版本 如果需要整站跳转,则在网站的配置文件的<Directory>标签内,键入以下内容: RewriteEngine on RewriteCond %{SERVER_PORT} !^443$ RewriteRule ^(.*)?$ https://%{SERVER_NAME......

Helios51 ⋅ 今天 ⋅ 0

Python爬虫,抓取淘宝商品评论内容

作为一个资深吃货,网购各种零食是很频繁的,但是能否在浩瀚的商品库中找到合适的东西,就只能参考评论了!今天给大家分享用python做个抓取淘宝商品评论的小爬虫! 思路 我们就拿“德州扒鸡”...

python玩家 ⋅ 今天 ⋅ 0

MySQL 内核深度优化

MYSQL数据库适用场景广泛,相较于Oracle、DB2性价比更高,Web网站、日志系统、数据仓库等场景都有MYSQL用武之地,但是也存在对于事务性支持不太好(MySQL 5.5版本开始默认引擎才是InnoDB事务...

java高级架构牛人 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部