Cocos2d-x学习笔记(二十二)之 网格动作
2013-08-27 11:36
363 查看
网格动作类似于特效,可以实现翻转、抖动、震荡、水波纹等效果。Cocos2D-x中,网格类的基类CCGridBase有两个子类,即CCGrid3D和CCTiledGrid3D。这两个类的共同点是,网格的每个子块都可以分离出来,CCGridBase的继承关系如下:
CCGrid3D、CCTiledGrid3D-->CCGridBase-->CCObject。
网格没有什么直接应用的场合,只要明白CCGrid3D和CCTiledGrid3D,并且网格动作是基于网格的即可。运行网格动作的节点好像被分成了大小相同的很多矩形,通过这些矩形的动作形成整体动作,这些矩形就好像形成了一个矩阵。16x12的网格将会运行的非常快,但是效果并不是非常好。32x24的网格看起来非常棒,但是在有些时候运行起来不会太快。
使用网格之前需要取消OpenGL的深度检测,调用如下语句:
网格动作的使用和普通动作一样,可以使用runAction来运行动作,具体的动作如下:
CCShaky3D:格扭曲,create函数的参数是扭曲范围、是否扭曲z轴、格的大小、间隔时间。
CCWaves3D:波浪式,create函数的参数是波浪数、振幅、格的大小、间隔时间。
CCFlipX3D:x轴翻转,create函数的参数为时间。
CCFlipY3D:y轴翻转,create函数的参数为时间。
CCLens3D:放大镜,create函数的参数是中心点、半径、格的大小、时间。
CCRipple3D:水波,create函数的参数是中心点、半径、波浪数、振幅、格的大小、时间。
CCLiquid:流体效果,create函数的参数是波浪数、振幅、格的大小、时间。
CCWaves:扭曲波浪,create函数的参数是波浪数、振幅、水平sin、竖直sin、格的大小、时间。
CCTwirl:扭曲,create函数的参数是中心点、扭曲数、振幅、格的大小、时间。
CCShakyTiles3D:水波,create函数的参数是范围、是否z轴、格的大小、时间。
CCShatteredTiles3D:破碎歪曲,create函数的参数是范围、是否z轴、格的大小、时间。
CCShuffleTiles:打散,参数是随机数种子、格的大小、时间。
CCFadeOutTRTiles:顶右淡出,参数是格的大小、时间。
CCFadeOutBLTiles:底左淡出,参数是格的大小、时间。
CCFadeOutUpTiles:向上淡出,参数是格的大小、时间。
CCFadeOutDownTiles:向下淡出,参数是格的大小、时间。
CCTurnOffTiles:方块消失,参数是随机数种子、格的大小、时间。
CCWavesTiles3D:方块波浪,参数是波浪数、振幅、分格的大小、间隔时间。
CCJumpTiles3D:跳跃方块,参数是跳跃次数、振幅、分格的大小、间隔时间。
CCSplitRows:切开行,参数是函数、时间。
CCSplitCols:切开列,参数是函数、时间。
CCPageTurn3D:翻页,参数是格的大小、时间。
在使用网格时,网格动作结束后需要把网格清空,使用示例如下:
CCGrid3D、CCTiledGrid3D-->CCGridBase-->CCObject。
网格没有什么直接应用的场合,只要明白CCGrid3D和CCTiledGrid3D,并且网格动作是基于网格的即可。运行网格动作的节点好像被分成了大小相同的很多矩形,通过这些矩形的动作形成整体动作,这些矩形就好像形成了一个矩阵。16x12的网格将会运行的非常快,但是效果并不是非常好。32x24的网格看起来非常棒,但是在有些时候运行起来不会太快。
使用网格之前需要取消OpenGL的深度检测,调用如下语句:
CCDirector::sharedDirector()->setDepthTest( false );
网格动作的使用和普通动作一样,可以使用runAction来运行动作,具体的动作如下:
CCShaky3D:格扭曲,create函数的参数是扭曲范围、是否扭曲z轴、格的大小、间隔时间。
CCWaves3D:波浪式,create函数的参数是波浪数、振幅、格的大小、间隔时间。
CCFlipX3D:x轴翻转,create函数的参数为时间。
CCFlipY3D:y轴翻转,create函数的参数为时间。
CCLens3D:放大镜,create函数的参数是中心点、半径、格的大小、时间。
CCRipple3D:水波,create函数的参数是中心点、半径、波浪数、振幅、格的大小、时间。
CCLiquid:流体效果,create函数的参数是波浪数、振幅、格的大小、时间。
CCWaves:扭曲波浪,create函数的参数是波浪数、振幅、水平sin、竖直sin、格的大小、时间。
CCTwirl:扭曲,create函数的参数是中心点、扭曲数、振幅、格的大小、时间。
CCShakyTiles3D:水波,create函数的参数是范围、是否z轴、格的大小、时间。
CCShatteredTiles3D:破碎歪曲,create函数的参数是范围、是否z轴、格的大小、时间。
CCShuffleTiles:打散,参数是随机数种子、格的大小、时间。
CCFadeOutTRTiles:顶右淡出,参数是格的大小、时间。
CCFadeOutBLTiles:底左淡出,参数是格的大小、时间。
CCFadeOutUpTiles:向上淡出,参数是格的大小、时间。
CCFadeOutDownTiles:向下淡出,参数是格的大小、时间。
CCTurnOffTiles:方块消失,参数是随机数种子、格的大小、时间。
CCWavesTiles3D:方块波浪,参数是波浪数、振幅、分格的大小、间隔时间。
CCJumpTiles3D:跳跃方块,参数是跳跃次数、振幅、分格的大小、间隔时间。
CCSplitRows:切开行,参数是函数、时间。
CCSplitCols:切开列,参数是函数、时间。
CCPageTurn3D:翻页,参数是格的大小、时间。
在使用网格时,网格动作结束后需要把网格清空,使用示例如下:
//获得父节点 CCNode* ss = getChildByTag( kTagBg ); //检测父节点是否还有动作,如果没有并且网格不为空 if(ss->numberOfRunningActions() == 0 && ss->getGrid() != NULL) { //调用setGrid函数并传入空参数(NULL)便可清空网格,使用schedule一直检测调用这段代码就可以实现清空无动作的节点网格。 ss->setGrid( NULL ); }
相关文章推荐
- 【Cocos2d-X开发学习笔记】第20期:网格动作类的使用
- cocos2d-x学习笔记09:动作2:持续动作
- cocos2d-x学习笔记-CCAction(动作)
- Cocoa学习笔记 Cocos2d 各种动作介绍 (下)
- cocos2d-x学习笔记(10)重复动作RepeatForever和Repeat 以及动作组合Sequence和Spawn
- Cocos2d-x学习笔记(二十一)之 动作管理类CCActionManager
- 【Cocos2d-X开发学习笔记】第18期:动作类之改变动作对象、函数回调动作以及过程动作的使用
- Cocos2d – x学习笔记[3] 动作及其监听、触屏事件
- cocos2d-x CCAction动作学习笔记
- 【Cocos2d-X开发学习笔记】第19期:动作管理类(CCActionManager)的使用
- cocos2d-x学习笔记(四)动作(Action)
- 【Cocos2d-X开发学习笔记】第12期:动作类CCAction的详细讲解
- cocos2d-x学习笔记-CCAction(动作)
- 五毛的cocos2d-x学习笔记05-场景与场景动画,动作
- 【Cocos2d-X开发学习笔记】第12期:动作类CCAction的详细讲解
- cocos2d-x学习笔记 动作 CCCallFunc家族(回调函数包装器)
- Cocos2d-x动作学习笔记 分类: cocos2d代码编写 2015-07-27 17:30 7人阅读 评论(0) 收藏
- cocos2d-x学习笔记-CCAction(动作)
- cocos2d-x学习笔记09:动作2:持续动作
- cocos2d-x学习笔记10:动作3:补间动作