Scene,Director,Layer和Sprite-创新互联-成都快上网建站

Scene,Director,Layer和Sprite-创新互联

Scene:
    在应用程序中,scene是相对独立的一块,在很多其他的引擎中,也把它称之为“画布”或者“舞台”。
    在cocos2d-x中,一个应用可以有多个scene,但任何时刻只能有一个是acitve的。一个CCScene由多个CCNode组成,一般是包含若干个CCLayer,而CCLayer又包含多个CCSprite。需要注意的是,CCScene,CCLayer和CCSprite都继承了CCNode,只不过后者还有其他的父类,使用多继承进行实现。可以得知cocos2d-x的可视化数据组织就是一棵场景树,只不过其中的有些中间节点被赋予了额外的逻辑(比如CCScene和CClayer)
    由于Scene是CCNode的子类,所以可以进行手动或者使用Actions进行变换。
    有一族特殊的scene叫CCTransitionScene,从CCScene派生而来,可以实现场景切换特效,比如褪色,翻页等效果。
Director:

    Director是一个共享的单例对象,用来控制场景Scene之间的切换。Director知道当前Active的Scene。可以通过Director在场景栈的栈顶push一个新的scene来进行场景切换。将之前的Scene B压栈,push Scene A,但并不从内存中销毁Scene B。如果将栈顶Scene A弹出,则会切换到Scene B,而且状态也恢复到之前压栈的状态。
    Director 还负责OpenGL ES 的初始化。
Layer:
    Layer是一种可以处理触摸事件的CCNode,可以在代码中看它除了额外继承CCNode之外,还继承了CCTouchDelegate。CCLayer知道如何绘制自己,并且可以半透,让玩家看到其他的Layer。CCLayer在定义游戏的外观和行为时非常有用,所以你应该花大量的编码时间来开发自己所需要的CCLayer子类。
    CCLayer可以在ccTouchBegan, ccTouchMoved, ccTouchEnded和ccTouchCancelled中处理相应的事件,而且在场景中的所有Layer都会收到这些事件,直到某个Layer处理了为止。
     除了可以开发自己所需要的CCLayer子类之外,cocos2d-x还提供了几种实现好的Layer,比如CCMenu,CCColorLayer和CCLayerMultiplex等。
     CCLayer可以包含任何CCNode的子类,包括CCSprite,CCLabels乃至其他的CCLayer子类。CCLayer也可以手动或者使用Actions进行变换。
     以下是使用一种渐变Layer的示例:

公司主营业务:成都做网站、成都网站设计、成都外贸网站建设、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联推出德州免费做网站回馈大家。

1 CCLayerGradient* layer1 = CCLayerGradient::create(ccc4(255, 0, 0, 255), ccc4(255, 0, 255, 255));

 2 layer1->setContentSize(CCSizeMake(80, 80));

3 layer1->setPosition(ccp(50,50));

4 addChild(layer1);

5

6 CCLayerGradient* layer2 = CCLayerGradient::create(ccc4(0, 0, 0, 127), ccc4(255, 255, 255, 127));

7 layer2->setContentSize(CCSizeMake(80,80));

8 layer2->setPosition(ccp(100,90));

9 addChild(layer2);

10

11 CCLayerGradient* layer3 =CCLayerGradient::create();

12 layer3->setContentSize(CCSizeMake(80, 80));

13 layer3->setPosition(ccp(150,140));

14layer3->setStartColor(ccc3(255, 0, 0));

15 layer3->setEndColor(ccc3(255, 0, 255));

16 layer3->setStartOpacity(255);

17layer3->setEndOpacity(255);

18 ccBlendFunc blend;

19 blend.src = GL_SRC_ALPHA;

20 blend.dst = GL_ONE_MINUS_SRC_ALPHA;

21 layer3->setBlendFunc(blend);

22 addChild(layer3);

Sprite:

     Sprite的概念和其他的2D引擎是差不多的,就是一个2D的图像,可以旋转平移缩放。
     Sprite可以包含其他的Sprite作为子节点,当父节点被变换时,子节点会一起被变换。
     Sprite可以手动或者使用Actions进行变换。
 希望能为需要的朋友解决问题,
如果还不能解决可以联系QQ897703027,email: hongjiandao@163.com
欢迎大家交流cocos2d-x,C++等各方面的知识,或者创业团队求收留,本人目前在做cocos2dx网游

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


当前标题:Scene,Director,Layer和Sprite-创新互联
文章网址:http://kswjz.com/article/dijspi.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流