Cocos2d-X中的粒子

Cocos2d-x引擎提供了强大的粒子系统,它在模仿自然现象、物理现象及空间扭曲上具备得天独厚的优势,为我们实现一些真实自然而又带有随机性的特效(如爆炸、烟花、水流)提供了方便

程序实例1:创建一个烟花效果的方法1

  CCSize winSize = CCDirector::sharedDirector()->getWinSize();

    //烟花效果
    CCParticleFireworks* fw =  CCParticleFireworks::create();
    addChild(fw);

    fw->setPosition(ccp(winSize.width / 2, winSize.height / 2));

执行结果:

程序实例2:创建一个烟花效果的方法2

    CCSize winSize = CCDirector::sharedDirector()->getWinSize();

    //烟花效果
   	CCParticleSystemQuad* p = CCParticleFireworks::create();
    addChild(p);

    p->setPosition(winSize.width / 2, winSize.height / 2);

执行结果:

程序实例3:创建一个星云效果

   CCSize winSize = CCDirector::sharedDirector()->getWinSize();

      //星云效果
	CCParticleSystemQuad* p2 = CCParticleGalaxy::create();
    addChild(p2);

    p2->setPosition(ccp(winSize.width / 2, winSize.height / 2));

执行结果:

程序实例4:创建一个彗星效果

 CCSize winSize = CCDirector::sharedDirector()->getWinSize();

	 //彗星效果
	CCParticleSystemQuad* p2 = CCParticleMeteor::create();
    addChild(p2);

    p2->setPosition(ccp(winSize.width / 2, winSize.height / 2));

执行结果:

程序实例5:创建一个花束效果

 CCSize winSize = CCDirector::sharedDirector()->getWinSize();

	//鲜花效果
    CCParticleSystemQuad* p2 = CCParticleFlower::create();
    addChild(p2);

    p2->setPosition(ccp(winSize.width / 2, winSize.height / 2));

执行结果:

程序实例6:创建一个火焰效果

 CCSize winSize = CCDirector::sharedDirector()->getWinSize();

	 //火焰效果
	CCParticleSystemQuad* p2 = CCParticleFire::create();
    addChild(p2);

    p2->setPosition(ccp(winSize.width / 2, winSize.height / 2));

执行结果:

程序实例7:5个效果放在一起展示

 CCSize winSize = CCDirector::sharedDirector()->getWinSize();

    //烟花效果
	CCParticleSystemQuad* p1 = CCParticleFireworks::create();

    //星云效果
	CCParticleSystemQuad* p2 = CCParticleGalaxy::create();

    //火焰效果
	CCParticleSystemQuad* p3 = CCParticleFire::create();

    //彗星效果
	CCParticleSystemQuad* p4 = CCParticleMeteor::create();

    //鲜花效果
    CCParticleSystemQuad* p5 = CCParticleFlower::create();

	addChild(p1);
	addChild(p2);
	addChild(p3);
	addChild(p4);
	addChild(p5);

    p1->setPosition(ccp(100, winSize.height / 2));
	p2->setPosition(ccp(200, winSize.height / 2));
	p3->setPosition(ccp(300, winSize.height / 2));
	p4->setPosition(ccp(400, winSize.height / 2));
	p5->setPosition(ccp(500, winSize.height / 2));

执行效果:

程序实例8:执行人工编辑的粒子

    CCSize winSize = CCDirector::sharedDirector()->getWinSize();

    CCParticleSystemQuad* p = CCParticleSystemQuad::create("Particles/Galaxy.plist");
	addChild(p);

    p->setPosition(ccp(winSize.width / 2, winSize.height / 2));

执行结果:

程序实例8:执行可以移动的粒子

 CCLayer::init();

    CCSize winSize = CCDirector::sharedDirector()->getWinSize();

    CCParticleSystemQuad* p = CCParticleSystemQuad::create("Particles/Flower.plist");
	addChild(p);
	p->setPosition(ccp(100, winSize.height / 2));

   	CCMoveBy* by = CCMoveBy::create(4, ccp(winSize.width, 0));

    p->runAction(
		CCRepeatForever::create(
		CCSequence::create(by, by->reverse(), NULL)
		)
		);

执行结果:







时间: 2024-10-13 21:19:37

Cocos2d-X中的粒子的相关文章

Cocos2D v3.4.9粒子效果不能显示的原因分析及解决办法

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 在游戏App中为了衬托气氛我们往往使用一些特殊的图形效果,粒子效果无疑是其中最为常用,也最为方便的一种. 正常使用下,粒子效果的确很稳定,但是本猫最近在RPG游戏里却遇到了粒子效果不能显示的问题,调试着实花了一些功夫.现将问题现象,分析以及解决方法记录下来和大家一起分享,也便于以后回忆查找. 问题现象很简单,就是粒子效果不显示-但也不是所有粒子效果都不显示,只

如何在Cocos2D游戏中实现A*寻路算法(一)

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流之用,请勿进行商业用途.同时,转载时不要移除本申明.如产生任何纠纷,均与本博客所有人.发表该翻译稿之人无任何关系.谢谢合作! 该篇博客由iOS课程团队的Johann Fradj发布,他现在是一个全职开发iOS的开发者.他是Hot Apps Factory(其是App Cooker的创造者)的共同创建

Unity中的粒子特效的 RendererQ 排序

这里接https://www.cnblogs.com/luguoshuai/p/10021660.html 这里介绍两套粒子排序的方法. 首先声明,这两套排序方法均不是本人所写,是在项目开发的过程当中,看到同事的设计,然后我就记录了下来了,作为后续的学习与使用. 方法一: 1 using System.Collections.Generic; 2 using UnityEngine; 3 4 public class UIRenderQueueSorter : MonoBehaviour 5 {

UGUI中显示粒子特效

今天在UGUI上显示粒子特效的时候遇到的一些问题,Mark一下.原理:修改特效中每一个ParticleSystem的Layer为UI,并且把ParticleSystemRenderer.sortingOrder值设置为大于Canvas中的sortingOrder值.其实就是控制两个组件 的Render Order. 1. 在UI控件上(eg: Image)显示一个粒子特效 1).首先创建一个Canvas,RenderMode = Screen Space-Camera ,然后创建一个UICame

如何在Cocos2D游戏中实现A*寻路算法(三)

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流之用,请勿进行商业用途.同时,转载时不要移除本申明.如产生任何纠纷,均与本博客所有人.发表该翻译稿之人无任何关系.谢谢合作! 创建开放和闭合列表 接下来我们将使用2个NSMutableArray来跟踪保存我们的开放和闭合列表. 你可能奇怪为什么不用NSMutableSet代替.好吧,这里有2个原因:

如何在Cocos2D游戏中实现A*寻路算法(五)

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流之用,请勿进行商业用途.同时,转载时不要移除本申明.如产生任何纠纷,均与本博客所有人.发表该翻译稿之人无任何关系.谢谢合作! 跟随着黄色砖块前进 现在我们已经找到了我们的路径,我们只需要让猫咪跟随它. 我们接下来要做的是记住整个路径,并且使得猫咪根据路径一步一步的移动. 在CatSprite.h中建

如何在Cocos2D游戏中实现A*寻路算法(八)

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流之用,请勿进行商业用途.同时,转载时不要移除本申明.如产生任何纠纷,均与本博客所有人.发表该翻译稿之人无任何关系.谢谢合作! 就拿上图中左上角的情况举个栗子. 这只猫咪想要从原点(O)到左下角的对角线方块中去.如果在左边或底下(或全部都有)有墙壁并且测试穿过对角线将会切入一个墙角(或2个).所以左下

NGUI中穿插粒子或者mesh渲染层级

在项目中由于特效的层级与NGUI UI的层级不太还规范,导致特效的渲染层级较为杂乱于是就想把特效层级与NGUI的层级管理混合在一起: 在修改之前首先要了解NGUI的层级管理以及DC的合并: 在NGUI中层级的管理以及Drawcall的合并都是由UIPanel这个组件来完成的:在NGUI中UIpanel就相当于UGUI中canvas和canvasrender,在UIpanel中会维护两个队列分别是UIWidget和UIDrawcall的队列并按照深度排序: 每当该UIPanel下有UIWidget

cocos2d JS 中的数组拼接与排序

1 var arrA = [];//创建三个局部变量的新数组 2 var arrB = []; 3 var arrC = []; 4 var newCards = this.MyMahjong;//创建一个新的局部变量等于一个全局变量的数组:并把里面的内容依次拆开再全部拼接 5 for(var t=0;t<newCards.length;t++){ 6 var char = newCards[t].charAt(0); 7 if(char == "a"){ 8 arrA.push