Cocos2d-x v3.1 核心类Director,Scene,Layer和Sprite(六)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Cocos2d-x v3.1 核心类Director,Scene,Layer和Sprite(六),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2420字,纯文字阅读大概需要4分钟。
内容图文
![Cocos2d-x v3.1 核心类Director,Scene,Layer和Sprite(六)](/upload/InfoBanner/zyjiaocheng/1289/70901c7837954de99cd27f17abd09089.jpg)
Cocos2d-x v3.1 核心类Director,Scene,Layer和Sprite(六)
Scene就像一个舞台一样在上面会摆放各种的元素,有的是固定的比如说布景,道具都是固定不动的,但有的元素也是可以移动的比如说男女主角。在游戏世界里也是如此,在一个游戏场景中我们会放置不同的元素来点缀我们的场景。当然在游戏世界里,也不能完全跟现实世界相同,为了方便元素的控制,我们将不同的元素放在不同的层,这样也方便管理。在一个场景中我们可以放置多个层,我们可以通过addChild来函数来把层加入到场景中。当我们在设计一个场景时,一般会从在个场景派生出一个自己的类,然后再在里面添加我们的层。
Director是一个单例,在整个游戏中只存在一个实例。Director中文意思是“导演”,在Cocos2d-x中也正如其名,它管理的Cocos2d-x中的所有场景的调度。它能够切换我们的当前场景(游戏中只有一个当前场景), 暂停场景中的动作这跟现实中的导演喊“咔”是一样的会暂停整个场景中所有的动作或音效等,当然也可以开始一个场景中的动作和音效。总而言之,Director扮演着一个导演的角色。
Layer是场景中的主要组成元素,由于层的出现让我们能够更好的管理场景中的元素。这里说的层的概念和Adobe Photoshop上的概念是一样的。当我们在设计层上的元素时,一般会从Layer派生出一个类来管层上的元素。当然,在Cocos2d-x中除了给我提供了一个默认的透明层外还为我们提供了一些内置的层比如Menu,LayerColor和LayerGradient等。
Sprite(精灵)是层中的主要组成元素,由于Sprite也是从Node的继承的所以可以把其他的Sprite作为子对象加入到Sprite对象中。Sprite的概念和其他的2D引擎差不多,就是一个2D的图像,可以旋转平移缩放。
下面我们基于前面的Hello world程序,在场景中添加3个层LayerColor,LayerGradient和LayerMultiplex。代码如下:
1: Scene* HelloWorld::createScene() 2: { 3: // ‘scene‘ is an autorelease object 4: auto scene = Scene::create(); 5: 6: // ‘layer‘ is an autorelease object 7: auto layer = HelloWorld::create(); 8: 9: // add layer as a child to scene 10: scene->addChild(layer); 11: auto gradientLayer = LayerGradient::create(Color4B(255, 0, 255, 255), Color4B(0, 0, 255, 255)); 12: gradientLayer->setContentSize(Size(200, 200)); 13: gradientLayer->setPosition(100, 100); 14: scene->addChild(gradientLayer); 15: 16: auto colorLayer = LayerColor::create(Color4B(255, 255, 0, 128)); 17: colorLayer->setContentSize(Size(200, 200)); 18: colorLayer->setPosition(100 + 250, 100); 19: scene->addChild(colorLayer); 20: 21: //test LayerMultiplex 22: auto gradientLayer1 = LayerGradient::create(Color4B(255, 0, 255, 255), Color4B(0, 0, 255, 255)); 23: gradientLayer1->setContentSize(Size(200, 200)); 24: 25: auto colorLayer1 = LayerColor::create(Color4B(255, 128, 0, 255)); 26: colorLayer1->setContentSize(Size(200, 200)); 27: 28: auto multLayer = LayerMultiplex::create(); 29: multLayer->addLayer(gradientLayer1); 30: multLayer->addLayer(colorLayer1); 31: multLayer->switchTo(1); 32: multLayer->setContentSize(Size(200, 200)); 33: multLayer->setPosition(100 + 250 + 250, 100); 34: scene->addChild(multLayer); 35: 36: // return the scene 37: return scene; 38: }
效果如下图:
原文:http://www.cnblogs.com/qilezaitu/p/3818690.html
内容总结
以上是互联网集市为您收集整理的Cocos2d-x v3.1 核心类Director,Scene,Layer和Sprite(六)全部内容,希望文章能够帮你解决Cocos2d-x v3.1 核心类Director,Scene,Layer和Sprite(六)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。