《Cocos2D权威指南》——3.3 CCScene场景类

简介: 本节书摘来自华章计算机《Cocos2D权威指南》一书中的第3章,第3.3节,作者:王寒,屈光辉,周雪彬著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

3.3 CCScene场景类

CCScene是CCNode的子类,和CCNode一样,也是一个抽象类。事实上,CCScene和CCNode几乎完全相同,唯一差异在于CCScene的锚点位置默认在屏幕中心。如果打开模板中CCScene.h文件,大家会发现其中只说明CCScene继承自CCNode,并没有任何其他内容。图3-4是典型的游戏场景跳转示意图。
当前版本的Cocos2D中,CCScene类基本上没有附加任何逻辑机制和特殊功能。通常建议将CCScene作为其他所有节点的父节点,看作CCLayer(层)对象的一个容器。
需要说明的是,通常CCScene的子节点都直接继承自CCLayer,CCLayer包含各个游戏对象。因为大多数情况下场景对象本身不包含任何游戏相关的代码,而且很少被子类化,所以它一般在CCLayer对象里通过+(id)scene静态方法来创建。

image

示例代码如下:

+(id) scene{
  CCScene *scene = [CCScene node];
  CCLayer* layer = [HelloWorld node];
  [scene addChild:layer];
return scene;
}

此外,如果要实现各种动画效果的场景切换,必须基于CCScene的场景切换。
3.3.1 CCTransitionScene场景切换
CCTransitionScene继承自CCScene,而所有场景过渡效果的类都继承自CCTransitionScene。CCTransitionScene的几个基本方法如下。
(1)-(void)finish
该方法在过渡效果结束时调用。
(2)-(void)hideOutShowIn
部分过渡效果会使用该方法来隐藏更外面的场景。
(3)-(id)initWithDuration:(ccTime)tscene:(CCScene *)s
该方法初始化一个场景过渡效果,并指定过渡时间和即将过渡的场景。
(4)+(id)transitionWithDuration:(ccTime)tscene:(CCScene *)s
该方法创建一个基本的场景过渡效果,并指定过渡时间和即将过渡的场景。
虽然过渡效果的名称和需要的参数数量很多,但是添加场景间的过渡效果只需要增加一行代码而已。
以一个最简单的淡入淡出过渡效果为例,场景在1秒内过渡到白色。这里把第2章示例游戏中用到的onRestartGame方法更改成如代码清单3-6所示。
代码清单3-6 onRestartGame更改

-(void) onRestartGame{
// 初始化一个过渡场景
    CCTransitionFade* transitionScene = [CCTransitionFade transitionWithDuration:1scene:[HelloWorldLayer scene]
withColor:ccWHITE];
// 使用过渡场景对象替代HelloWorld场景
    [[CCDirector sharedDirector] replaceScene:transitionScene];
}

注意 CCTransitionScene可以结合replaceScene和pushScene使用,但不能将过渡效果和popScene一起使用。
3.3.2 Cocos2D支持的场景过渡效果
Cocos2D支持多种场景过渡效果,以下是目前可以使用的过渡效果及其描述。
(1)CCTransitionFade
描述:场景在指定的时间内淡入淡出到一个指定的颜色。
(2)CCTransitionFadeTR
描述:从屏幕的左下角向上卷起瓦片(tiles),从而显示场景。它还有3个变化:
CCTransitionFadeBL:从屏幕的右上角到左下角淡出场景的瓦片。
CCTransitionFadeUp:从屏幕的底部到顶部淡出场景的瓦片。
CCTransitionFadeDown:从屏幕的顶部到底部淡出场景的瓦片。
(3)CCTransitionJumpZoom
描述:现有场景跳动着变小,新场景跳动着变大。
(4)CCTransitionMoveInL
描述:旧的场景会移出,而新场景会从屏幕左侧移入。它还有3个变化:
CCTransitionMoveInB:新场景从屏幕的底部移入。
CCTransitionMoveInT:新场景从屏幕的上方移入。
CCTransitionMoveInR:新场景从屏幕的右侧移入。
(5)CCTransitionSceneOriented
描述:将整个场景翻转过来。该效果还有6个变化:
CCTransitionFlipX:场景横向翻转。
CCTransitionFlipY:场景纵向翻转。
CCTransitionFlipAngular:场景一半按横向,一半按纵向翻转。
CCTransitionZoomFlipAngular:场景一半按横向,一半按纵向翻转,同时有一定缩放。
CCTransitionZoomFlipX:场景纵向翻转,同时有一定缩放。
CCTransitionZoomFlipY:场景横向翻转,同时有一定缩放。
(6)CCTransitionPageTurn
描述:翻动书页的过渡效果。
(7)CCTransitionRotoZoom
描述:当前场景旋转变小,新场景旋转变大。
(8)CCTransitionShrinkGrow
描述:当前场景缩小,新场景在其之上变大。
(9)CCTransitionSlideInL
描述:新场景从左边滑入。该效果还有另外3个变化:
CCTransitionSlideInR:新场景从右边滑入。
CCTransitionSlideInB:新场景从底部滑入。
CCTransitionSlideInT:新场景从顶部滑入。
(10)CCTransitionSplitCols
描述:将当前场景切成竖条,上下移动显示新场景。该效果还有一个变化是CCTransition SplitRows,将当前场景切成横条,左右移动显示新场景。
(11)CCTransitionTurnOffTiles
描述:将当前场景分成方块,用分成方块的新场景随机地替换当前场景分出的方块。
(12)CCTransitionProgressRadialCCW
描述:新场景沿着径向逆时针显示。该效果还有一个变化是CCTransitionProgress RadialCW,让新的场景沿着径向顺时针显示。
(13)CCTransitionProgressHorizontal
描述:新场景沿着横向逐渐显示。该效果还有一个变化是CCTransitionProgressVertical,让新场景沿着纵向逐渐显示。该效果是Cocos2D v2.0新增场景过渡效果。
(14)CCTransitionProgressInOut
描述:新场景由内到外逐渐显示。该效果还有一个变化是CCTransitionProgressOutIn,让新场景由外到内逐渐显示。该效果是Cocos2D v2.0新增场景过渡效果。
为了更好地了解每种效果的实际表现,可以打开Cocos2D模板的示例项目cocos2d-ios.xcodeproj,运行TransitionsTest,查看实际场景过渡效果。感兴趣的读者也可以仔细分析TransitionsTest.m,看看这些效果是如何具体实现的。

相关文章
|
缓存 前端开发 JavaScript
《Cocos2D-x权威指南》——3.3 场景类
本节书摘来自华章计算机《Cocos2D-x权威指南》一书中的第3章,第3.3节,作者:满硕泉著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1267 0
|
iOS开发 C++
《Cocos2D-x权威指南》——第3章 Cocos2D-x中的核心类
本节书摘来自华章计算机《Cocos2D-x权威指南》一书中的第3章,作者:满硕泉著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
908 0
《Cocos2D权威指南》——第3章 3.0 Cocos2D核心类
本节书摘来自华章计算机《Cocos2D权威指南》一书中的第3章,第3.0节,作者:王寒,屈光辉,周雪彬著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1057 0
|
JavaScript iOS开发
《Cocos2D权威指南》——1.3 HelloCocos2D实例
本节书摘来自华章计算机《Cocos2D权威指南》一书中的第1章,第1.3节,作者:王寒,屈光辉,周雪彬著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1235 0
|
缓存 JavaScript 前端开发
《Cocos2D权威指南》——3.7 Cocos2D中的单例
本节书摘来自华章计算机《Cocos2D权威指南》一书中的第3章,第3.7节,作者:王寒,屈光辉,周雪彬著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1359 0
|
JavaScript 前端开发
《Cocos2D权威指南》——3.4 CCLayer层类
本节书摘来自华章计算机《Cocos2D权威指南》一书中的第3章,第3.4节,作者:王寒,屈光辉,周雪彬著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1413 0
|
传感器 JavaScript 前端开发
《Cocos2D-x权威指南》——3.4 布景层类
本节书摘来自华章计算机《Cocos2D-x权威指南》一书中的第3章,第3.4节,作者:满硕泉著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1453 0
《Cocos2D-x权威指南》——1.4 本章小结
本节书摘来自华章计算机《Cocos2D-x权威指南》一书中的第1章,第1.4节,作者:满硕泉著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1217 0
|
移动开发 程序员 Android开发
《Cocos2D-x权威指南》——导读
现在,开始的好奇心和兴趣成就了我引以为豪的事业。在大四的时候,我到了天津猛犸实习,从J2ME平台到Android平台,从Android平台到iOS平台,我不仅接触了不同平台的开发,更学会了游戏开发的技巧和思想。如果说编程是一门艺术,那么游戏开发就是艺术中的艺术。
1443 0
|
iOS开发 开发者
《Cocos2D权威指南》——导读
从1976年在父母的车库中创业开始,乔布斯参与、开创并改变了几个行业—PC、电脑动画、数字音乐、移动互联网。他创办了苹果公司,中途又因某些原因被苹果驱逐。然而在苹果挣扎于濒死的边缘时,他又挺身而出将苹果救活,并把它推到无人可以企及的高度。
1050 0
下一篇
无影云桌面