CCNode是cocos2d中最重要的一个基类,是一个抽象类,定义了所有节点的公共属性和方法,因为其重要性,所以这里把官方API对CCNode的属性方法描述粗略了翻译下,方便日后查询使用,也希望能帮到大家,如果有的地方描述不准确,大家可以直接参考官方英文原版的说明:点击打开链接。
CCNode是一个重要的元素,所有我们看到绘制下来的东西都是CCNode,最常见的CCNode有:CCScene,CCLayer,CCSprite,CCMenu;
CCNode的主要特征有:每个节点都可以包含子节点、可以定时执行回调、可以执行动作;
部分CCNode子类提供了一些独特的功能;
子类化一个CCNode通常意味着下面这些操作:重写初始化方法以初始化资源或回调、创建回调来控制时间、重写绘制着色;
CCNode的特征有:position、scale(x,y)、rotation(in degrees,clockwise)、CCCamera(an interface to gluLookAt)、CCGridBase(to do mesh transformations)、anchor point 、size、visible、z-order、openGL z position
默认值为:rotation:0、position:(x=0,y=0)、scale:(x=1,y=0)、contentSize:(x=0,y=0)、anchorPoint:(x=0,y=0).
成员方法描述:
- (void) addChild: | (CCNode *) | node |
- (void) addChild: | (CCNode *) | node | |
z: | (NSInteger) | z |
- (void) addChild:(CCNode *) nodez:(NSInteger) ztag:(NSInteger) tag
同上,除了可设置z轴,可给要添加到子节点添加tag,方便在父节点中取;
- (CGRect) boundingBox |
补充一下:该方法用来补充getContentSize方法,boundingBox可以获得节点缩放或者旋转之后的范围,getContentSize获取原始节点的大小;
- (void) cleanup |
- (CGPoint) convertToNodeSpace:(CGPoint) worldPoint
将参数worldPoint转换为node的空间坐标
补充一下:基本的两个坐标系:屏幕坐标系和GL坐标系。屏幕坐标系x轴朝右,y轴朝下。默认原点在左上角。GL坐标系x轴朝右,y轴朝上。默认原点在左下角。
- (CGPoint) convertToNodeSpaceAR:(CGPoint) worldPoint
将参数以节点锚点为原点,转换为世界坐标;
- (void) draw | |
- (CCAction*) getActionByTag: | (NSInteger) | tag |
通过tag从当前正在运行的动作列表中获取动作;
- (CCNode*) getChildByTag: | (NSInteger) | tag |
- (id) init |
+ (id) node |
- (CGAffineTransform) nodeToParentTransform |
- (CGAffineTransform) nodeToWorldTransform
同上相反;
- (NSUInteger) numberOfRunningActions |
- (void) onEnter |
- (void) onEnterTransitionDidFinish
当节点进入"stage"时调用,如果节点伴随着transition,则在transition结束后调用;
- (void) onExit |
- (void) onExitTransitionDidStart | |
|
- (CGAffineTransform) parentToNodeTransform |
- (void) pauseSchedulerAndActions
暂停节点的所有调动和动作,被onExit内部调用;
- (void) removeAllChildrenWithCleanup: | (BOOL) | cleanup |
- (void) removeChild:(CCNode *) node cleanup:(BOOL) cleanup
移除指定的子节点,并根据cleanup参数决定是否清除所有的动作;
- (void) removeChildByTag:(NSInteger) tag cleanup:(BOOL) cleanup
同上差不多;
- (void) removeFromParentAndCleanup: | (BOOL) | cleanup |
- (void) reorderChild: | (CCNode *) | child | |
z: | (NSInteger) | zOrder |
- (void) resumeSchedulerAndActions |
- (CCAction*) runAction:(CCAction *) action
执行动作;
- (void) schedule:(SEL) s
执行一个SEL方法,该方法在每帧时都会调用;
- (void) schedule: | (SEL) | s | |
interval: | (ccTime) | seconds |
如果方法s已经被定义了,then the interval parameter will be updated without scheduling it again(不太明白);
- (void) schedule: | (SEL) | selector | |
interval: | (ccTime) | interval | |
repeat: | (uint) | repeat | |
delay: | (ccTime) | delay |
- (void) scheduleOnce: | (SEL) | selector | |
delay: | (ccTime) | delay |
- (void) scheduleUpdate
check whether a selector is scheduled. schedules the "update" method. It will use the order number 0. This method will be called every frame. Scheduled methods with a lower order value will be called before the ones that have a higher order value. Only one "udpate" method could be scheduled per node.
- (void) sortAllChildren |
- (void) stopAction: | (CCAction *) | action |
- (void) stopActionByTag: | (NSInteger) | tag |
- (void) stopAllActions |
- (void) unscheduleAllSelectors |
- (void) visit |