加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Cocos2D游戏之旅(六):流星、烟花、火焰、下雪、下雨粒子特效

发布时间:2020-12-14 16:26:56 所属栏目:百科 来源:网络整理
导读:晓石头的博客 邮箱: 178673693@qq.com 转载请注明出处,原文链接:http://www.jb51.cc/article/p-diecaqxz-vx.html 效果演示 一、整体实现 点击每一个菜单选项,显示相应的的特效。分别对应:流星、烟花、火焰、下雪、下雨。 二、单个详解 流星: 1、粒子系

晓石头的博客

邮箱:178673693@qq.com

转载请注明出处,原文链接:http://www.52php.cn/article/p-diecaqxz-vx.html



效果演示

一、整体实现

点击每一个菜单选项,显示相应的的特效。分别对应:流星、烟花、火焰、下雪、下雨。

二、单个详解

流星:

1、粒子系统CCParticleMeteor创建流星效果

2、定时器移动位置产生坠落效果

void HelloWorld::fallingStar(Ref* ref){	
	static int isSchedule = 0;		//控制scheduleUpdate只注册一次

	/* 创建背景精灵 */
	Sprite* bkSnow = Sprite::create("bkSky.jpg");
	bkSnow->setPosition(Point(size.width / 2,size.height / 2));
	this->addChild(bkSnow);

	//流星效果  
	shootingStar = CCParticleMeteor::create();
	shootingStar->setTexture(CCTextureCache::sharedTextureCache()->addImage("fire.png"));
	shootingStar->setPosition(Point(size.width / 2,size.height / 2));
	addChild(shootingStar);
	if (0 == isSchedule)
	{
		isSchedule++;
		this->scheduleUpdate();
	}

	return;
}

void HelloWorld::update(float t)
{
	/* 流星坠落效果 */
	shootingStar->setPositionX(shootingStar->getPositionX() + 4);	
	shootingStar->setPositionY(shootingStar->getPositionY() - 2);
	
	if (shootingStar->getPositionX() > 480 || shootingStar->getPositionY() < 0)
	{
		shootingStar->setPositionX(0);
		shootingStar->setPositionY(size.height);
	}
}


==================================================================

烟花:

粒子系统CCParticleFireworks创建烟花效果

void HelloWorld::fireBoom(Ref* ref){

	/* 创建背景精灵 */
	Sprite* bkSnow = Sprite::create("bkSky.jpg");
	bkSnow->setPosition(Point(size.width / 2,size.height / 2));
	this->addChild(bkSnow);

	//烟花效果  
	CCParticleSystem* particleSystem1 = CCParticleFireworks::create();
	particleSystem1->setTexture(CCTextureCache::sharedTextureCache()->addImage("fire.png"));
	particleSystem1->setPosition(Point(80,0));
	addChild(particleSystem1);

	CCParticleSystem* particleSystem2 = CCParticleFireworks::create();
	particleSystem2->setTexture(CCTextureCache::sharedTextureCache()->addImage("fire.png"));
	particleSystem2->setPosition(Point(240,0));
	addChild(particleSystem2);

	CCParticleSystem* particleSystem3 = CCParticleFireworks::create();
	particleSystem3->setTexture(CCTextureCache::sharedTextureCache()->addImage("fire.png"));
	particleSystem3->setPosition(Point(400,0));
	addChild(particleSystem3);

	return;
}

==================================================================

火焰:

粒子系统CCParticleFire创建火焰效果

void HelloWorld::flame(Ref* ref){
	/* 创建背景精灵 */
	Sprite* bkSnow = Sprite::create("bkFire.jpg");
	bkSnow->setPosition(Point(size.width / 2,size.height / 2));
	this->addChild(bkSnow);
	//火焰效果  
	CCParticleSystem* particleSystem = CCParticleFire::create();
	particleSystem->setPosition(Point(250,130));
	particleSystem->setTexture(CCTextureCache::sharedTextureCache()->addImage("fire.png"));
	addChild(particleSystem);

	return;
}

==================================================================

雪花:

粒子系统CCParticleSnow创建雪花效果。

void HelloWorld::snow(Ref* ref){
	/* 创建背景精灵 */
	Sprite* bkSnow = Sprite::create("bkSnow.png");
	bkSnow->setPosition(Point(size.width / 2,size.height / 2));
	this->addChild(bkSnow);

	/* 雪花效果 */
	CCParticleSystem* particleSystem = CCParticleSnow::create();	//创建粒子系统
	particleSystem->setTexture(CCTextureCache::sharedTextureCache()->addImage("snow.png"));	//设置纹理
	particleSystem->setSpeed(5.0f);		//下雪的速度
	this->addChild(particleSystem);

	return;
}

==================================================================

下雨:

粒子系统CCParticleRain创建下雨效果。

void HelloWorld::rain(Ref* ref){
	/* 创建背景精灵 */
	Sprite* bkSnow = Sprite::create("bkRain.jpg");
	bkSnow->setPosition(Point(size.width / 2,size.height / 2));
	this->addChild(bkSnow);

	/* 下雨效果 */
	CCParticleSystem* particleSystem = CCParticleRain::create();
	particleSystem->setTexture(CCTextureCache::sharedTextureCache()->addImage("snow.png"));
	particleSystem->setSpeed(300.0f);
	addChild(particleSystem);

	return;
}

更多的粒子效果,移步@song_hui_xiang的博客:http://www.52php.cn/article/p-bfwzzrss-nk.html

源代码免积分下载地址:http://download.csdn.net/detail/qiulanzhu/9039203

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读