《Cocos2D权威指南》——3.1 Cocos2D节点基础知识

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

3.1 Cocos2D节点基础知识

在Cocos2D中,CCNode、CCScene和CCLayer这些类是没有视觉呈现的,但它们之间存在一个层级关系。
3.1.1 节点层级图
节点层级图是由所有目前活跃的Cocos2D节点组成的一个层级图,又叫场景继承关系图。除了场景本身,每一个节点只有一个父节点,但是可以有任意数量的子节点。
将节点添加到其他节点中时,就在构建节点场景图。图3-1描绘了一个虚拟的游戏场景图,在顶层是一个场景(CCScene)节点,接下来是层(CCLayer)节点。

image

CCLayer下一层的子节点构成了游戏的主要元素,它们大多数是精灵(CCSprite)节点,还包括用于显示游戏得分的标签节点,游戏中的菜单节点和菜单项目节点等。
节点层级图的作用在于,对某个节点施加的影响将会影响到它的所有子节点。
3.1.2 什么是锚点
如果觉得锚点这个概念很抽象,可以想象用图钉在墙上订上一张卡片,卡片就相当于节点,墙壁就相当于设备的屏幕,而图钉就是锚点。
在Cocos2D中,锚点的默认位置是在纹理图像的几何中心位置。比如将某个精灵对象的位置设置为(50,50)时,其几何中心位置在默认情况下也应该是(50,50)。
如果将锚点设置在精灵的左下角,并将精灵的位置设置为(50,50)。那么此时应该是精灵的左下角处于(50,50)的位置,而非其几何中心处在该位置。锚点和节点对象的几何形状关系如图3-2所示。

image

锚点实际上是到节点对象纹理图的偏移。锚点值的范围从(0,0)到(1,1)之间。默认情况下,锚点位于纹理图像的几何中心,即(0.5,0.5)。
锚点很重要的一个作用就是辅助游戏元素进行界面布局定位。如代码清单3-1中所示第2章用到的代码片断所示。
代码清单3-1 第2章游戏中用到的代码片断

CCLabelTTF *lifeIndicator = [CCLabelTTF labelWithString:@"生命值:" fontName:@"Arial" fontSize:20];
      lifeIndicator.anchorPoint = ccp(0.0,0.5);
      lifeIndicator.position = ccp(20,winSize.height - 20);
      [self addChild:lifeIndicator z:10];
      _lifeLabel = [CCLabelTTF labelWithString:@"3" fontName:@"Arial" fontSize:20];
      _lifeLabel.position = ccpAdd(lifeIndicator.position, ccp(lifeIndicator.contentSize.width+10,0));
      [self addChild:_lifeLabel z:10];

注意 通常设置CCNode的position属性是相对于锚点的,而CCLabel的锚点默认设置在节点的中点。所以,当设置CCLabel节点位置时,节点的中心位置也是所设置的坐标位置。

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