cocos2dx(9)

來源:互聯網
上載者:User
cocos2d-x初探學習筆記(9)--粒子系統
2012-02-06 14:40:05     我來說兩句 
收藏    我要投稿   
[字型:小 大]
在遊戲中,經常要實現一些真實的效果,這些效果(如,火焰,雪花等)都是由大量微粒組合而形成的。為了在遊戲中實現這種效果,我們必須引進粒子系統,粒子系統中需要包括四個部分:粒子物件,運動規律,隨機性,粒子狀態。大量的粒子疊加就可以產生我們需要的特效。
 
在cocos2d-x引擎中,粒子系統使用CCParticleSystem來表示,又分為兩大類,重力式粒子系統CCParticleSystemPoint和放射式粒子系統CCParticleSystemQuad,兩者在功能上略有不同,CCParticleSystemQuad支援圍繞軸線旋轉,CCParticleSystemQuad支援更多粒子物件和縮放,重力式故名思義,系統中存在重力,重力大小可以自己定義,包括的參數有:重心,速度,方向,尺寸,存在時間,顏色,繞自己軸心旋轉角度,角加速度,線加速度,半徑,分組模式(是否隨重心移動),放射性系統恰恰相反,不存在重力,包括的參數有:重心,方向,尺寸,存在時間,顏色,繞自己軸心旋轉角度,繞重心為軸心旋轉角度,半徑,分組模式(是否隨重心移動)。
 
過程分為以下幾步
 
第一步 建立粒子系統
 
m_emitter = new CCParticleSystemQuad();
 
第二步 產生粒子物件
 
m_emitter->initWithTotalParticles(50);
 
第三步 設定參數
 
// radial半徑
 
m_emitter->setRadialAccel(-120);
 
m_emitter->setRadialAccelVar(0);
 
第四步 設定到背景上
 
m_background->addChild(m_emitter, 10);
 
另外引擎還支援一些粒子編輯工具
 
另外引擎內還實現了一些內建粒子系統
 
CCParticleFire CCParticleFireworks CCParticleSun CCParticleGalaxy CCParticleFlower CCParticleMeteor CCParticleSpiral CCParticleExplosion CCParticleSmoke CCParticleSnow CCParticleRain
 
基本使用方法類似
 
m_emitter = CCParticleFire::node();
 
m_emitter->retain();
 
m_background->addChild(m_emitter, 10);
 
m_emitter->setTexture( CCTextureCache::sharedTextureCache()->addImage(s_fire) );//.pvr"];
 
CCPoint p = m_emitter->getPosition();
 
m_emitter->setPosition( CCPointMake(p.x, 100) );
 
剛開始研究此引擎,如有錯誤之處,希望大家多多指正

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.