cocos2d简介————————————————————————————————————————————
首先Cocos2D 降低了技术的复杂性。它虽然基于OpenGL(Open Graphics Library,开放图形库)和OpenGL ES(OpenGL for Embedded Systems,嵌入式系统开放图形库),但是使用Cocos2D 系列的引擎无须掌握OpenGL 的相关知识。大多数Cocos2D 游戏中简单的图形对象由Sprite 精灵对象生成。Sprite 就是一个贴图。你可以调用Cocos2D 中的方法来实现图片的缩放
同时由于它是开源的,你可以获得引擎的全部源代码,也可以根据你的需要用OpenGL 知识来修改或生成新的游戏对象。也就是说,对于初学者来说,Cocos2D可以避免你花费时间去研究OpenGL 的相关内容,同时它也不排斥资深开发者对于引擎的修改,进而使开发者随心所欲地来使用它。
因为它是开源的,所以你的修改也相对方便了许多,你在游戏开发中会有很大的灵活性,不必束缚在引擎的功能限制上。对
于富有经验的游戏开发者来说,这点十分重要。 (努力学)
当然,Cocos2D 最为辉煌的舞台就是App Store。(努力学)
它的跨平台特性,使开发者编写一套代码就可以横跨Android 和iOS 两大平台,从而提高开发者的开发效率。Cocos2D-x不但具有跨平台的特性
当然,如果想要编译出相应平台运行的游戏包,需要相应的开发环境。比如编译出Android 操作系统上的APK(Android Package,安卓系统安装包),就需要在Android 的开发环境里进行编译(这些内容会在第2 章介绍)。但是代码无须重新修改,这就为开发提供了便捷性和灵活性。
cocos2d环境搭建————————————————————————————————————————————
Cocos2D-x 2.0 以上版本支持Win32、Android、iOS 三个平台的开发
一般情况下,使用Cocos2D-x 的开发流程是:首先在VS 环境中进行开发调试,之后分别在另外两个平台的开发环境中编译生成相应的软件包
cocos2d————————————————————————————————————————————————
一个类继承自CCNode 类,说明
它有如下特点:
? 重写初始化的方法和周期性回调方法。
? 在时间线上控制回调。
? 重写渲染的绘制方法。
node
成员变量————————————————————————————————————————————————
m_bIgnoreAnchorPointForPosition bool 是否忽略锚点的位置
m_pChildren 数组 子节点数组
m_tAnchorPoint 点坐标 节点平移或移位时的锚点(0,0-1,1)
m_tAnchorPointInPoints 点坐标 节点平移或移位时的锚点的绝对坐标,可读,如果需要修改,请修改上一个属性
m_tContentSize 尺寸(CCSize) 获得节点的大小(未缩放、旋转等),所有节点都有大小,场景类和布景层类的尺寸是屏幕大小
m_pParent 节点 父节点
m_nTag 整型 节点标记
m_pUserData 空 用户数据指针
m_pUserObject 对象(CCObject) 类似上一个属性,存储了ID 号
m_pActionManager 动作管理 用于管理所有动作
m_pScheduler 调度类 调度所有的周期性更新
成员函数————————————————————
getZOrder 整型 获得兄弟节点间z 轴顺序
getVertexZ 浮点型 获得z 轴坐标
getChildren 数组 获得子节点数组
getChildrenCount 整型 获得子节点数量
getAnchorPoint 点坐标 获得锚点相对坐标
setAnchorPoint 空 设置锚点相对坐标
getAnchorPointInPoints 点坐标 获得锚点绝对坐标
getContentSize 尺寸 获得节点的尺寸
setContentSize 空 设置节点的尺寸
getParent 节点 获得父节点
setParent 空 设置父节点
isIgnoreAnchorPointForPosition 布尔型 是否忽略锚点位置
ignoreAnchorPointForPosition 空 设置是否忽略锚点位置
getTag 整型 获得标签值
setTag 空 设置标签值
getUserData 空 获得用户数据
setUserData 空 设置用户数据
getUserObject 对象 获得用户数据对象
setUserObject 空 设置用户数据对象
getActionManager 动作管理 获得动作管理对象
setActionManager 空 设置动作管理对象
getScheduler 调度 获得调度对象
setScheduler 空 设置调度对象
onEnter 空 进入节点(场景类)的对象
onEnterTransitionDidFinish 空 场景等切换动画播放完毕进入
onExit 空 离开节点(场景类)的对象
onExitTransitionDidStart 空 场景等切换动画播放完毕离开
addChild 空 添加子节点,参数可以加入z 轴排序参数,标签值
removeFromParentAndCleanup 空 从父节点删除本节点,参数决定是否清除本节点
removeChild 空 删除子节点,参数为节点对象和是否清除本节点
removeChildByTag 空 根据标签值删除节点,参数为标签和是否清除本节点
removeAllChildrenWithCleanup 空 删除所有子节点,参数决定是否清除本节点
getChildByTag 节点 根据标签值获得子节点
cleanup 空 停止所有的动作和调度
draw 空 渲染函数
runAction 动作 运行动作
stopAllActions 空 结束所有动作
getActionByTag 动作 根据动作标签获得动作
stopAction 空 结束动作,传入的参数是动作指针
stopActionByTag 空 根据标签值结束动作
numberOfRunningActions 整型 获得运行动作数量
convertToNodeSpace 点坐标 转换为节点空间坐标,相对于节点的左下角,与锚点无关
convertToWorldSpace 点坐标 转换为世界空间(全局绝对)坐标,与锚点无关
convertToNodeSpaceAR 点坐标 转换为节点空间坐标,传入值和输出值都相对于锚点
convertToWorldSpaceAR 点坐标 转换为世界空间坐标,传入值和输出值都相对于锚点
getCamera 摄像机 获得节点摄像机
锚点————————————————————————————————————————————————
如果把锚点设置成(0,0),贴图的左下角就会和节点的位置重合,这可能使得元素定位更为方便,但会影响到元素的缩放和旋转等一系列变换。因此并没有一种锚点设置是放之四海而皆准的,要根据你这个对象的使用情况来定义。
坐标转换——————————————————————————————————————————————
convertToWorldSpace
convertToNodeSpace
这两种转换都是不考虑锚点的,都以当前节点父类的左下角的坐标为标准。convertToWorldSpaceAR 和convertToNodeSpaceAR。这两个方法完成同样的功能,但是它们的基准坐标是基于坐标锚点的。
几乎所有的游戏引擎都会使用类似的本地坐标系而非世界坐标系来指定元素的位置。这样做的好处是,当计算物体运动的时候,使用同一本地坐标系的元素可以作为一个子系统独立计算,最后再加上坐标系的运动即可,这是物理研究中常用的思路。人的运
动轨迹变复杂,涉及中学所学到的运动轨迹的合成与分解。
CCDirector公共函数——————————————————————————————————————————
getRunningScene 场景类 获得当前正在运行的场景
setDisplayStats 空 设置是否在屏幕左下角显示每帧的时间
getWinSize 尺寸 获得屏幕大小(单位为点)
runWithScene 空 运行当前的场景
popScene 空 弹出当前场景,将它从栈顶弹出
pushScene 空 悬挂当前场景,压入栈中
popToRootScene 空 弹出所有场景,直到根场景
replaceScene 空 替换当前场景
end 空 结束游戏
pause 空 暂停场景
resume 空 重启被暂停的场景,被暂停的时间调度也重新激活
stopAnimation 空 停止动画
startAnimation 空 开始动画
drawScene 空 绘制场景
purgeCachedData 空 清除缓存数据
getTouchDispatcher 触屏调度 获得触屏调度对象
setTouchDispatcher 空 设置触屏调度对象
getKeypadDispatcher 键盘调度 获得键盘调度
setKeypadDispatcher 空 设置键盘调度
getAccelerometer 加速度传感器 获得加速度传感器
setAccelerometer 空 设置加速度传感器
getActionManager 动作管理 获得动作管理对象
setActionManager 空 设置动作管理对象
getScheduler 调度 获得调度对象
setScheduler 空 设置调度对象
导演————————————————————————————————————————————————
游戏进入后台或者从后台返回时导演类的工作
void AppDelegate::applicationDidEnterBackground()
{
CCDirector::sharedDirector()->stopAnimation();
}
void AppDelegate::applicationWillEnterForeground()
{
CCDirector::sharedDirector()->startAnimation();
}
在手机有外部事件进入时,也会将当前界面暂停,比如来电话的时候。在游戏结束的时候,同样需要使用导演类的结束函数,
导演类的结束方法
void HelloWorld::menuCloseCallback(CCObject* pSender)
{
CCDirector::sharedDirector()->end();
#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
exit(0);
#endif
}
从以上例子可以看出,导演类就是一个管理游戏的指挥官。
层————————————————————————————————————————————————
当然为了看到每一层的东西,可把一些层设置为透明或半透明的
CCLayer子类的功能————————
CCLayerColor 实现 CCRGBAProtocol 协议,可设置层的颜色和不透明度
CCLayerMultiplex 可以将它和子布景层结合在一起
CCMenu 菜单布景层
CCControl UI 控件
CCMenuPassive 这个布景层不发送时间,每个节点做自己的事情
CCScrollView 支持Cocos2D-iPhone 的滚动视图
CCSpacer 获得水平或垂直的空间
CCLayer类的主要函数————————
onEnter 空 当进入布景层时被调用
onExit 空 当离开布景层时被调用
onEnterTransitionDidFinish 空 过场动画结束时调用
ccTouchBegan 布尔型 触屏触摸屏幕
ccTouchMoved 空 触屏移动
ccTouchEnded 空 触屏结束
ccTouchCancelled 空 触屏取消
didAccelerate 空 加速度传感器
颜色布景层类CCLayerColor
create 函数的第一个参数是颜色的ARGB值,使用ccc4 定义,其中第一个参数是颜色a值,第二个参数是R 值,第三个参数是G 值,最后一个参数是B 值。除此之外,create 函数的后两个参数是布景层的宽和高。
通过setContentSize 可以设置颜色布景层的大小。对于CCLayerColor 类来说,还有一个比较常用的函数setBlendFunc,可以让布景层的颜色产生渐变效果
多层布景层类CCLayerMultiplex
在游戏开发中,一般会把游戏分为两部分:一部分是游戏界面部分,也就是常说的UI 部分(User Interface,用户界面);
另一部分就是游戏本身部分。有时UI 有很多页面,在页面中用的图也并不是很多,不需要使用切换场景,只需把不同页面做成不同的布景层,然后切换布景层。那么这就需要一个“管理者”来管理这些界面,这时候就要使用CCLayerMultiplex 类。
————————————————————————————
<在很多游戏中都需要在不同的界面中使用相同的几个变量,如果不这样做,就需要做大量的保存工作。>
数据都存在CCLayerMultiplex中 数据一般都是通过ui发生变化
CCLa yerMultiplex* layer = CCLayerMultiplex::create(pLayer1, pLayer2, pLayer3,pLayer4, pLayer5, NULL);
void MenuLayerPriorityTest::menuCallback(CCObject* pSender)
{((CCLayerMultiplex*)m_pParent)->switchTo(0);}
————————————————————————————
使用扩展库
USING_NS_CC;
#include "cocos-ext.h" //使用扩展必须的头文件
USING_NS_CC_EXT;//#define USING_NS_CC_EXT using namespace cocos2d::extension
常规 附加包含目录
$(SolutionDir)extensions
CCSprite类的主要公共函数————————————————————————————————————————————
initWithTexture 布尔型 通过贴图定义精灵
initWithSpriteFrame 布尔型 通过CCSpriteFrame 定义精灵
initWithSpriteFrameName 布尔型 通过CCSpriteFrame 名称定义精灵
initWithFile 布尔型 通过文件路径定义
setTextureRect 空 设置贴图矩形
displayFrame 精灵帧 获得当前精灵帧
setDisplayFrame 空 设置当前显示帧
isFrameDisplayed 布尔型 当前是否显示此显示帧
getBatchNode 精灵批处理 获得精灵批处理节点
setBatchNode 空 设置精灵批处理节点
setDisplayFrameWithAnimationName 空 通过动画名称和索引设置显示帧
getTextureAtlas 贴图集 获得贴图集
setTextureAtlas 空 设置贴图集
纹理贴图集是将我们需要的部分图片放在一张大小固定的图片,可以节约内存。因为OpenGL 机制会把单张图处理成相应大小的长宽都是2 的n 次方的图片,所以把图片放在一起可以节约空间
贴图类CCTexture2D————————————————————————————————————————————
CCTexture2D类的主要函数
initWithString 布尔型 通过字符串定义CCTexture2D 类
initWithImage 布尔型 通过图片路径定义CCTexture2D 类
initWithPVRFile 布尔型 通过PVR 图片路径定义CCTexture2D 类
CCTexture2D 类是精灵类和其相关类的基础。以下会看到很多类都可以用CCTexture2D类定义。
精灵批处理类CCSpriteBatchNode————————————————————————————————————————
CCSpriteBatchNode 类的主要函数
initWithTexture 布尔型
通过二维贴图来初始化CCSpriteBatchNode 精灵批处理类,第二个参数是估计的CCSprite 精灵个数,但是并不会约束你的使用个数
initWithFile 布尔型
通过图片路径( 格式可以是PNG、JPEG、PVR 等) 来初始化CCSpriteBatchNode 精灵批处理类,第二个参数是估计的CCSprite 精灵个数,但是并不会约束你的使用个数
increaseAtlasCapacity 空 增加贴图集容量
removeSpriteFromAtlas 空 将精灵从贴图集中删除
init 布尔型 初始化
精灵帧类CCSpriteFrame————————————————————————————————————————
CCSpriteFrame 类的主要函数
initWithTextureFilename 布尔型
通过图片路径(格式可以是PNG、JPEG、PVR 等),第二个参数是矩形范围,也就是精灵帧的大小。还有一种是可选的,第三个参数设置是否旋转,第四个参数设置起始点的偏移位置和被裁减之前的原始大小
initWithTexture 布尔型
通过贴图定义,第二个参数是矩形范围,也就是精灵帧的大小。还有一种是可选的,第三个参数设置是否旋转,第四个参数设置起始点的偏移位置和被裁减之前的原始大小
getOriginalSize 尺寸 获得被裁减前的原始大小
setOriginalSize 空 设置被裁减前的原始大小
精灵帧缓存类CCSpriteFrameCache————————————————————————————————————
addSpriteFramesWithFile 空
第一个参数是贴图集plist 文件的路径名。可以是默认贴图,也可以通过第二个参数定义贴图使用贴图对象或路径
addSpriteFrame 空 通过CCSpriteFrame 精灵帧定义,第二个参数是自定义的名称
removeSpriteFrames 空 清空精灵帧
removeUnusedSpriteFrames 空 删除不用的精灵帧
spriteFrameByName 精灵帧 根据定义的名称找到精灵帧,如果没有对应的,返回空
removeSpriteFrameByName 空 通过名称删除精灵帧
//CCSpriteFrame这部分要重新看
CCArray的常用函数————————————————————————————————————
init 布尔型 初始化
initWithObject 布尔型 初始化,参数为对象
initWithObjects 布尔型 初始化,参数为多个对象
initWithCapacity 布尔型 初始化,参数为个数
initWithArray 布尔型 初始化,参数为数组
count 整数 目前对象个数
capacity 整数 数组对象
indexOfObject 整数 获得相应对象的索引
objectAtIndex 对象 根据索引获得对象
lastObject 对象 返回最后一个对象
randomObject 对象 随机返回一个对象
addObject 空 增加对象
addObjectsFromArray 空 将一个数组添加进来
insertObjectAtIndex 空 插到某个索引上
removeLastObject 空 删除最后一个对象
removeObject 空 删除对象
removeObjectsInArray 空 删除整个数组的对象
reverseObjects 空 颠倒对象
exchangeObject 空 交换两个对象,参数为对象
exchangeObjectAtIndex 空 交换两个对象,参数为索引
fastRemoveObject 空 快速删除一个确定的对象
fastRemoveObjectAtIndex 空 根据索引快速删除一个对象
CCDictionary 的常用函数————————————————————————————————————
CCDictionary 构造函数 构造函数
count 整数 项目个数
allKeys CCArray 数组 所有的键值
allKeysForObject CCArray 数组 所有键值对应的对象
objectForKey 对象 键值对应的对象
setObject 布尔型 添加项,第一个参数是对应的对象,第二个是键,键可以是字符串,也可以是整数
removeObjectForKey 空 根据键删除项
removeObjectsForKeys 空 根据键值数组删除项
removeObjectForElememt 空 根据元素删除相应对象
removeAllObjects 空 删除所有项
CCDictionary的定义函数
CCDictionary* pRet = new CCDictionary();
拖动渐隐效果类CCMotionStreak————————————————————————————————————
这种感觉就好像是类似飞机拉线的拖尾巴,在视觉上感觉很好,比如子弹的运动轨迹等
绘制图形————————————————————————————————————
在节点类CCNode 中, 可以重写draw 函数并在其中绘制图形
时间调度————————————————————————————————————
在游戏中,时常需要隔一段时间更新一些数据或者是人物位置,Cocos2D-x 中提供了这些时间调度的函数,所有CCNode 类的子类都有这样的函数
schedule的使用
schedule(schedule_selector(SchedulerAutoremove::autoremove), 0.5f);
这是一个按时调用一个函数的方法。第一个参数使用schedule_selector 选择器将autoremove 函数名称传进来。第二个参数是时间间隔。定义这个参数以后就会隔一段时间调用一次该函数,直到unschedule 被调用。
// 暂停schedule
m_pPausedTargets = pDirector->getScheduler()->pauseAllTargets();
CC_SAFE_RETAIN(m_pPausedTargets);
// 重新启动schedule
pDirector->getScheduler()->resumeTargets(m_pPausedTargets);
CC_SAFE_RELEASE_NULL(m_pPausedTargets);
使所有schedule 停止
CCDirector::sharedDirector()->getScheduler()->unscheduleAllSelectors();
有一种固定的调用方式,就是使用scheduleUpdate 会在0.01s 左右调用一次update 方法,只要重载update 方法即可。
过程动作————————————————————————————————————
步骤1.定义CCProgressTo,通过actionWithDuration函数,第一个参数是时间是一个CCTime对象,第二个参数是结果显示图片的百分比,如例子中一个100%,一个50%
步骤2 定义CCProgressTimer,通过progressWithFile,参数是图片路径
步骤3 调用setType设置类型,
kCCProgressTimerTypeRadialCW 顺时针生成
kCCProgressTimerTypeRadialCCW 逆时针生成
kCCProgressTimerTypeHorizontalBarLR 从左到右生成
kCCProgressTimerTypeHorizontalBarRL 从右到左生成
kCCProgressTimerTypeVerticalBarBT 从下到上生成
kCCProgressTimerTypeVerticalBarTB 从上到下生成
步骤4:设置位置,没什么好说的,直接setPosition
步骤5:开始,使用CCRepeatForever(重复进行),传入CCProgressTo对象
CCProgressTimer *progress1=CCProgressTimer::create(CCSprite::create("Icon.png"));
progress1->setPosition(ccp(100,100));
//设置进度条的样式
progress1->setType(kCCProgressTimerTypeRadial);
//设置进度值范围[0,100]
progress1->setPercentage(100);
//反进度计时
progress1->setReverseProgress(true);
this->addChild(progress1);
//第一个参数是时间,第二个参数是表示旋转100%
CCProgressTo *to1 = CCProgressTo::create(10, 100);
progress1->runAction(to1);
//------------------------------------------
CCProgressTimer *progress2=CCProgressTimer::create(CCSprite::create("Icon.png"));
progress2->setPosition(ccp(200,100));
//设置进度条的样式
progress2->setType(kCCProgressTimerTypeBar);
//设置计时器运动方向
progress2->setMidpoint(ccp(0,1));
//设置计时器的宽高起始比例
progress2->setBarChangeRate(ccp(0, 1));
this->addChild(progress2);
//第一个参数是时间,第二个参数是表示旋转100%
CCProgressTo *to2 = CCProgressTo::create(10, 100);
progress2->runAction(to2);
CCNode 类的主要公共成员数据
名 称类 型描 述
m_bIsRunning 布尔型这个节点是否在运行
m_bIgnoreAnchorPointForPosition 布尔型是否忽略锚点的位置
CCNode 类的主要保护成员数据
名 称类 型描 述
m_nZOrder 整型
该节点兄弟节点的z 轴顺序。在二维游戏中,z 轴顺
序决定遮挡关系
m_fVertexZ 浮点型 在OpenGL 的真正的z 轴值
m_fRotation 浮点型 角度制的节点旋转的角度值
m_fScaleX 浮点值 x 轴的缩放系数
m_fScaleY 浮点值 y 轴的缩放系数
m_tPosition 点坐标(CCPoint) 位置坐标
m_fSkewX 浮点值 x 轴的扭曲效果的系数
m_fSkewY 浮点值 y 轴的扭曲效果的系数
m_pChildren 数组 子节点数组
m_pCamera 摄像机 跟随节点的摄像机对象
m_pGrid 网格特效 允许节点拥有网格特效
m_bIsVisible 布尔值 节点是否显示
m_tAnchorPoint 点坐标
节点平移或移位时的锚点,(0,0)为左下,(1,1)
为右上,(0.5,0.5)为中心
m_tAnchorPointInPoints 点坐标
节点平移或移位时的锚点的绝对坐标,可读,如果
需要修改,请修改上一个属性
m_tContentSize 尺寸(CCSize)
获得节点的大小(未缩放、旋转等),所有节点都有
大小,场景类和布景层类的尺寸是屏幕大小
m_tPosition 点坐标 节点坐标
m_pParent 节点 父节点
m_nTag 整型 节点标记
m_pUserData 空 用户数据指针
m_pUserObject 对象(CCObject) 类似上一个属性,存储了ID 号
m_pShaderProgram OpenGL 程序 渲染参数
m_nOrderOfArrival 整型 内部z 轴排序,不改变
m_glServerState OpenGL 服务状态 OpenGL 附带的服务状态
m_pActionManager 动作管理 用于管理所有动作
m_pScheduler 调度类 调度所有的周期性更新
CCNode 类的主要函数
函 数 名返 回 类 型描 述
getZOrder 整型 获得兄弟节点间z 轴顺序
getVertexZ 浮点型 获得z 轴坐标
函 数 名返 回 类 型描 述
setVertexZ 空 设置z 坐标
getRotation 浮点型 获得旋转角度(角度制)
setRotation 空 设置旋转角度(角度制)
getScale 浮点型 获得缩放系数
setScale 空 设置缩放系数
getScaleX 浮点型 获得x 轴缩放系数
setScaleX 空 设置x 轴缩放系数
getScaleY 浮点型 获得y 轴缩放系数
setScaleY 空 设置y 轴缩放系数
getPosition 点坐标 获得坐标位置
setPosition 空 设置坐标位置
getPositionX 浮点值 获得x 坐标值
setPositionX 空 设置x 坐标值
getPositionY 浮点值 获得y 坐标值
setPositionY 空 设置y 坐标值
getSkewX 浮点值 获得x 轴扭曲效果系数
setSkewX 空 设置x 轴扭曲效果系数
getSkewY 浮点值 获得y 轴扭曲效果系数
setSkewY 空 设置y 轴扭曲效果系数
getChildren 数组 获得子节点数组
getChildrenCount 整型 获得子节点数量
getCamera 摄像机 获得节点摄像机
getGrid 网格 获得网格对象
setGrid 空 设置网格对象
isVisible 布尔型 获得是否可见
setVisible 空 设置是否可见
getAnchorPoint 点坐标 获得锚点相对坐标
setAnchorPoint 空 设置锚点相对坐标
getAnchorPointInPoints 点坐标 获得锚点绝对坐标
getContentSize 尺寸 获得节点的尺寸
setContentSize 空 设置节点的尺寸
isRunning 布尔型 获得节点是否在运行
getParent 节点 获得父节点
setParent 空 设置父节点
isIgnoreAnchorPointForPosition 布尔型 是否忽略锚点位置
ignoreAnchorPointForPosition 空 设置是否忽略锚点位置
getTag 整型 获得标签值
setTag 空 设置标签值
getUserData 空 获得用户数据
setUserData 空 设置用户数据
getUserObject 对象 获得用户数据对象
setUserObject 空 设置用户数据对象
getActionManager 动作管理 获得动作管理对象
setActionManager 空 设置动作管理对象
getScheduler 调度 获得调度对象
setScheduler 空 设置调度对象
getShaderProgram 渲染参数 获得渲染参数对象
setShaderProgram 空 设置渲染参数对象
onEnter 空 进入节点(场景类)的对象
onEnterTransitionDidFinish 空 场景等切换动画播放完毕进入
onExit 空 离开节点(场景类)的对象
onExitTransitionDidStart 空 场景等切换动画播放完毕离开
addChild 空 添加子节点,参数可以加入z 轴排序参数,标签值
removeFromParentAndCleanup 空 从父节点删除本节点,参数决定是否清除本节点
removeChild 空 删除自动节点,参数为节点对象和是否清除本节点
removeChildByTag 空 根据标签值删除节点,参数为标签和是否清除本节点
removeAllChildrenWithCleanup 空 删除所有子节点,参数决定是否清除本节点
getChildByTag 节点 根据标签值获得子节点
reorderChild 空 根据z 轴值重新排列子节点,参数为节点和z 轴值
sortAllChildren 空
在渲染前排列所有节点, 可以被reorderChild 和
addChild 代替。除非在某一帧里有节点的添加和删除,否
则不会自动调用
cleanup 空 停止所有的动作和调度
draw 空 渲染函数
visit 空 递归方法遍历到本节点和子节点并绘制它们
runAction 动作 运行动作
stopAllActions 空 结束所有动作
getActionByTag 动作 根据动作标签获得动作
stopAction 空 结束动作,传入的参数是动作指针
stopActionByTag 空 根据标签值结束动作
numberOfRunningActions 整型 获得运行动作数量
transform 空 运行矩阵变化
convertToNodeSpace 点坐标 转换为节点空间坐标,相对于节点的左下角,与锚点无关
convertToWorldSpace 点坐标 转换为世界空间(全局绝对)坐标,与锚点无关
convertToNodeSpaceAR 点坐标 转换为节点空间坐标,传入值和输出值都相对于锚点
convertToWorldSpaceAR 点坐标 转换为世界空间坐标,传入值和输出值都相对于锚点
convertTouchToNodeSpace 点坐标 从触屏对象转换为节点空间坐标
convertTouchToNodeSpaceAR 点坐标
从触屏对象转换为节点空间坐标,传入值和输出值都相
对于锚点
nodeToParentTransform 仿射变换矩
返回从本地节点坐标到父节点空间坐标的矩阵变换仿射
矩阵
parentToNodeTransform 仿射变换矩
返回从父节点空间坐标到本地节点坐标的矩阵变换仿射
矩阵
nodeToWorldTransform 仿射变换矩 返回从本地节点坐标到世界坐标的矩阵变换仿射矩阵
worldToNodeTransform 仿射变换矩 返回从世界坐标到本地节点坐标的矩阵变换仿射矩阵
getContentSize函数来获得节点原始的大小。只是逻辑尺寸,不是像素
boundingBox函数来获得经过缩放和旋转之后的外框盒大小。
getContentSizeInPixels获得的是像素点大小
——————————————————————————————————————————————————————————————————————
CCSprite 类主要保护的成员数据
名 称类 型描 述
m_bHasChildren 布尔型是否有子节点
m_bShouldBeHidden 布尔型是否被隐藏
m_obRect 矩形长宽构成的矩形
m_bRectRotated 布尔型矩形是否旋转
m_obOffsetPosition 点坐标偏移位置
m_obUnflippedOffsetPositionFromCenter 点坐标从中心位置的非平移偏移
m_sColorUnmodified 颜色颜色RGB 值
m_bOpacityModifyRGB 布尔型是否不透明
m_bFlipX 布尔型是否x 轴镜像
m_bFlipY 布尔型是否y 轴镜像
m_bDirty 布尔型是否需要更新
m_bRecursiveDirty 布尔型是否需要递归的更新
m_sColor 颜色颜色RGB 值
m_nOpacity 不透明度不透明度
CCSprite 类的主要公共函数
函 数 名返回类型描 述
initWithTexture 布尔型通过贴图定义精灵
initWithSpriteFrame 布尔型通过CCSpriteFrame 定义精灵
initWithSpriteFrameName 布尔型通过CCSpriteFrame 名称定义精灵
initWithFile 布尔型通过文件路径定义
setTextureRect 空设置贴图矩形
displayFrame 精灵帧获得当前精灵帧
setDisplayFrame 空设置当前显示帧
isFrameDisplayed 布尔型当前是否显示此显示帧
getBatchNode 精灵批处理获得精灵批处理节点
setBatchNode 空设置精灵批处理节点
setDisplayFrameWithAnimationName 空通过动画名称和索引设置显示帧
getTextureAtlas 贴图集获得贴图集
setTextureAtlas 空设置贴图集
setFlipX 空设置x 轴的镜像
setFlipY 空设置y 轴的镜像