Cocos2D游戏之旅(六):流星、烟花、火焰、下雪、下雨粒子特效
晓石头的博客 邮箱: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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |