Cocos2d-x
发布时间:2022-05-02 发布网站:大佬教程 code.js-code.com
大佬教程收集整理的这篇文章主要介绍了cocos2d-x 节点类CCNode,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
转载:http://www.voidcn.com/article/p-uiebpjlc-ep.html
节点类CCNode可以说是游戏元素的祖宗了,基本上我们看得到的游戏元素都是以它为原型进行扩展的。像CCScene,CCLayer,CCSprite,CCMenu,CCSpriteBatchNode等等都是从CCNode继承而来。另外如果我们要自定义精灵,那么从CCNode继承也是一个很不错的选择。
1.概况
CCNode直接从CCObject继承而来,有如下几个特点:
(1)可以包含其他CCNode节点,可以进行添加/获取/删除子节点操作。
(2)可以执行周期性的回调任务。
(3)可以执行动作。
一些子类化的节点提供了更为丰富的特性和功能。
2.属性
- FeaturesofCCNode:
- -position
- -scale(x,y)
- -rotation(indegrees,clockwisE)
- -skew
- -CCCamera(aninterfaCETogluLookAt)
- -CCGridBase(todo@H_139_67@meshtransformations)
- -anchorpoint
- -size
- -visible
- -z-order
- -openGLzposition
3.接口
3.1.初始化
- virtualboolinit();
- staticCCNode*create(void);
- constchar*description(void);
3.2.图形属性
- virtualvoidsetZOrder(intzOrder);
- virtualvoid_setZOrder(intz);
- virtualintgetZOrder();
- virtualvoidsetVertexZ(floatvertexz);
- virtualfloatgetVertexZ();
- virtualvoidsetScaleX(floatfScaleX);
- virtualfloatgetScaleX();
- virtualvoidsetScaleY(floatfScaleY);
- virtualfloatgetScaleY();
- virtualvoidsetScale(floatscalE);
- virtualfloatgetScale();
- virtualvoidsetScale(floatfScaleX,floatfScaleY);
- virtualvoidsetPosition(constCCPoint&position);
- virtualconstCCPoint&getPosition();
- virtualvoidsetPosition(floatx,floaty);
- virtualvoidgetPosition(float*x,float*y);
- virtualvoidsetPositionX(floatX);
- virtualfloatgetPositionX(void);
- virtualvoidsetPositionY(floaty);
- virtualfloatgetPositionY(void);
- virtualvoidsetSkewX(floatfSkewX);
- virtualfloatgetSkewX();
- virtualvoidsetSkewY(floatfSkewY);
- virtualfloatgetSkewY();
- virtualvoidsetAnchorPoint(constCCPoint&anchorPoint);
- virtualconstCCPoint&getAnchorPoint();
- virtualconstCCPoint&getAnchorPoinTinPoints();
- virtualvoidsetContentSize(constCCSize&contentSizE);
- virtualconstCCSize&getContentSize()const;
- virtualvoidsetVisible(boolvisiblE);
- virtualboolisVisible();
- virtualvoidsetRotation(floatfRotation);
- virtualfloatgetRotation();
- virtualvoidsetRotationX(floatfRotaionX);
- virtualfloatgetRotationX();
- virtualvoidsetRotationY(floatfRotationY);
- virtualfloatgetRotationY();
3.3.节点操作
- virtualvoidaddChild(CCNode*child);
- virtualvoidaddChild(CCNode*child,intzOrder);
- virtualvoidaddChild(CCNode*child,intzOrder,inttag);
- CCNode*getChildByTag(inttag);
- virtualCCArray*getChildren();
- unsignedintgetChildrenCount(void)const;
- virtualvoidsetParent(CCNode*parent);
- virtualCCNode*getParent();
- virtualvoidremoveFromParent();
- virtualvoidremoveFromParentAndCleanup(boolcleanup);
- virtualvoidremoveChild(CCNode*child);
- virtualvoidremoveChild(CCNode*child,boolcleanup);
- virtualvoidremoveChildByTag(inttag);
- virtualvoidremoveChildByTag(inttag,boolcleanup);
- virtualvoidremoveAllChildren();
- virtualvoidremoveAllChildrenWithCleanup(boolcleanup);
- virtualvoidreorderChild(CCNode*child,intzOrder);
3.4.标签和用户数据
- virtualintgetTag()const;
- virtualvoidsetTag(intnTag);
- virtualvoid*getUserData();
- virtualvoidsetUserData(void*pUserData);
- virtualCCObject*getUserObject();
- virtualvoidsetUserObject(CCObject*pUserObject);
3.5.事件回调
- virtualvoidonEnter();
- virtualvoidonEnterTransitionDidFinish();
- virtualvoidonExit();
- virtualvoidonExitTransitionDidStart();
- virtualvoidcleanup(void);
3.6.动作
- virtualvoidsetActionManager(CCActionManager*actionManager);
- virtualCCActionManager*getActionManager();
- CCAction*runAction(CCAction*action);
- voidstopAllActions(void);
- voidstopAction(CCAction*action);
- voidstopActionByTag(inttag);
- CCAction*getActionByTag(inttag);
- unsignedintnumberOfRunningActions(void);
3.7.调度器和定时器
3.8.坐标转换
- CCPointconvertToNodeSpace(constCCPoint&worldPoint);
- CCPointconvertToWorldSpace(constCCPoint&nodePoint);
- CCPointconvertToNodeSpaceAR(constCCPoint&worldPoint);
- CCPointconvertToWorldSpaceAR(constCCPoint&nodePoint);
- CCPointconvertTouchToNodeSpace(CCTouch*touch);
- CCPointconvertTouchToNodeSpaceAR(CCTouch*touch);
3.9.其他
- virtualCCGLProgram*getShaderProgram();
- virtualvoidsetShaderProgram(CCGLProgram*pShaderProgram);
- virtualCCCamera*getCamera();
- virtualboolisRunning();
- virtualvoiddraw(void);
- virtualvoidvisit(void);
- CCRectboundingBox(void);
4.CCNodeRGBA
CCNodeRGBA继承于CCNode,所以它拥有CCNode的所有特性,并且它也继承于CCRGBAProtocol。从名字看来我们就知道它是一个带有颜色和透明度的节点。
所以它比起CCNode就多了2个特性,Opacity和RGB值。
如果要给子节点传递透明度属性,那么需要设置setCascadeOpacityEnabled(true),如果传递的过程中遇到了CCNode,那么传递会中断。颜色值的传递也是一样的道理。
大佬总结
以上是大佬教程为你收集整理的cocos2d-x 节点类CCNode全部内容,希望文章能够帮你解决cocos2d-x 节点类CCNode所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。