Cocos2d-x学习笔记(八)—— 粒子系统,场景切换,网格特效
粒子系统 用于在游戏的场景中生成特效,减少美工工作,可生成类似火焰,星星等的特效,效率高。为了方便开发,我们还可以利用粒子系统编辑器生成相应的plist,这里我上传了一个编辑器,当然也可从网上下载,下载地址:http://download.csdn.net/detail/u013707014/8997159 粒子系统相关类:(另外可设置其属性,查看详细官方文档) ParticleFire 火焰粒子系统 实例: auto emitter = ParticleFireworks::create(); // 设置持续时间(永久) emitter->setDuration(ParticleSystem::DURATION_INFINITY); // 设置发射器模式(发散) emitter->setEmitterMode(ParticleSystem::Mode::RADIUS); // radius mode: 100 pixels from center emitter->setStartRadius(100); emitter->setStartRadiusVar(0); emitter->setEndRadius(ParticleSystem::START_RADIUS_EQUAL_TO_END_RADIUS); emitter->setEndRadiusVar(0); // not used when start == end addChild(emitter,10); Texture2D* fire = Director::getInstance()->getTextureCache()->addImage("image/fire.png"); CCParticleSystemQuad* emitter = CCParticleFire::create(); emitter->setTexture(fire); // set the duration emitter->setPosition(s.width / 2,s.height / 2); this->addChild(emitter); auto fire = ParticleSystemQuad::create("myfire.plist"); fire->setPosition(s.width / 2,s.height / 2); this->addChild(fire); 场景切换 场景的转换是由Director类来控制的,通过调用Director类的replaceScene( Scenescene ) 方法可直接使用传入的scene替换当前场景来切换画面,当前场景会被释放,它是切换场景时最常用的方法。 Scene *hello = SwiftScene::createScene(); CCDirector::getInstance()->replaceScene(hello);
TransitionRotoZoom旋转和缩放外出的场景,同时旋转缩放进入的场景 实例: Scene *hello = CCTransitionPageTurn::create(1.0f,SwiftScene::createScene(),true); CCDirector::getInstance()->replaceScene(hello); 网格特效 实例: <pre name="code" class="cpp">nodegrid = NodeGrid::create(); auto lens = Shaky3D::create(5,Size(10,10),4,true); //参数依次为:持续时间、网格大小、中心坐标、半径 this->addChild(nodegrid); nodegrid->runAction(lens); auto sprite = Sprite::create("HelloWorld.png"); nodegrid->addChild(sprite); sprite->setPosition(s.width / 2,s.height / 2); // 时间调度,使其不断检查网格是否结束 schedule(CC_SCHEDULE_SELECTOR(HelloWorld::CheckAction)); void HelloWorld::CheckAction(float dt) { // 获取正在执行的动作和执行的网格动作 if (nodegrid->getNumberOfRunningActions() == 0 && nodegrid->getGrid() != NULL) { nodegrid->setGrid(NULL); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- nosql – Cassandra端口使用 – 如何使用端口?
- Flex4 ItemRender in DataGridColumn
- ActionScript 启用 SWF 文件的远程调试并设置调试密码
- VB.NET 播放声音
- C UTF-8实际字符串长度
- 使用React、Node.js、MongoDB、Socket.IO开发一个角色投票应
- xslt – 定义使用xpath-default-namespace的XSL XPath中的默
- 使用MvvmCross,复制预填充SQLite数据库的首选方法是什么
- c# – 如何使用Fluent NHibernate和多个数据库识别特定实体
- Flex ArrayCollection 中的排序、过滤