正文

基 础 知 识(5)

iPhone & iPad Cocos2D游戏开发实战 作者:(美)伊特海姆


3.4  CCNode类层次体系

所有节点都有一个公共父节点类——CCNode,它定义了除节点显示外的多数公共属性和方法。图3-2显示了从CCNode继承的一些最重要的类,将来你会经常使用这些类。而且,即使只用这些类,也能制作出非常出色的游戏。

3.5  CCNode类

CCNode是所有节点的基类。它是一个没有具体显示的抽象类,仅用于定义所有节点的公共属性和方法。

3.5.1  节点的处理方式

CCNode类实现了添加、获取以及删除子节点的所有方法。下面列举了一些针对子节点的处理方式:

创建新节点:

CCNode* childNode = [CCNode node];

把新建节点添加为子节点:

[myNode addChild:childNode z:0 tag:123];

获取子节点:

CCNode* retrievedNode = [myNode getChildByTag:123];

利用标记删除子节点;参数“cleanup”将令所有正在运行的动作(action)停止:

 

[myNode removeChildByTag:123 cleanup:YES];

 

利用指针删除节点:

[myNode removeChild:retrievedNode];

删除某个节点的所有子节点:

[myNode removeAllChildrenWithCleanup:YES];

将某个节点从其父节点中删除:

[myNode removeFromParentAndCleanup:YES];

addChild方法中的参数“z”决定了节点的绘制顺序。首先绘制z值最低的节点,最后绘制z值最高的节点。如果多个节点拥有相同的z值,就按照添加它们的先后顺序进行绘制。当然,这只对有具体显示的节点(比如精灵)有效果。

tag参数保证了你在使用getChildByTag方法时能够区分并获取特定节点。


上一章目录下一章

Copyright © 读书网 www.dushu.com 2005-2020, All Rights Reserved.
鄂ICP备15019699号 鄂公网安备 42010302001612号