91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》
  • 首頁 > 
  • 教程 > 
  • 開發技術 > 
  • 23、Cocos2dx 3.0游戲開發找小三之粒子系統:你那里下雪了嗎?

23、Cocos2dx 3.0游戲開發找小三之粒子系統:你那里下雪了嗎?

發布時間:2020-07-03 01:21:24 來源:網絡 閱讀:417 作者:danielzzu 欄目:開發技術
重開發者的勞動成果,轉載的時候請務必注明出處:http://blog.csdn.net/haomengzhu/article/details/30485919

春雨驚春清谷天,夏滿芒夏暑相連, 秋處露秋寒霜降,冬雪雪冬小大寒。

在大自然中,隨處可見一些大規模運動的物體,例如下雨時的雨點、下雪時的雪花、爆炸時的火花,甚至旋轉的星系、擴散的云霧等。

可以看下顯微鏡下的雪,是多么的美!

23、Cocos2dx 3.0游戲開發找小三之粒子系統:你那里下雪了嗎?


當我們希望在游戲中模擬這些大規模運動的物體時,通常有如下兩種方法。
使用幀動畫來模擬。
設計幀動畫并把它渲染為圖片序列來模擬特效,不但生成的動畫體積龐大,也無法調整其運動參數,
并且還會失去其靈活性。

粒子效果的概念
我們把每一個對象看做一個粒子,賦予它們一定的屬性(例如外觀、位置、速度、加速度和生存時間等),
使它們按照一定的規律產生、運動并最終消失。
在粒子效果中,通常存在一個對所有粒子進行統一調度的引擎,稱作粒子系統(partical system),
它負責粒子的產生,隨時間改變粒子的狀態,以及最后回收不再需要的粒子。
如果按照粒子系統的維數來區分,粒子系統可以分為二維粒子系統與三維粒子系統兩種。

Cocos2d-x 3.0為我們提供的粒子系統由 ParticleSystem 類實現。
與其他的粒子引擎一樣,ParticleSystem 實現了對粒子的控制與調度,對粒子的操作包括如下幾種。
1、產生粒子:這部分也被稱作粒子發射器(emitter)。
2、更新粒子狀態:引擎會隨時間更新粒子的位置、速度以及其他狀態。
3、回收無效粒子:當粒子的生存周期結束后,就會被系統回收。

因此,為了創建一個粒子效果,我們需要定義粒子如何產生以及狀態如何改變。
ParticleSystem 提供了多種初始化方式。 
我們可以通過指定粒子數量來創建一個粒子系統, 然后需要設置粒子的外觀 (通常為一張小紋理)、發射方式與運動方式。
創建一個全新的粒子系統通常較為煩瑣,大多數情況下,我們更樂意把粒子系統的參數保存在文件中,
而 Cocos2d-x 就是使用 Plist 文件來保存這些參數的。
暫時拋開粒子效果文件 Plist 不談,如果我們已經擁有一個粒子效果文件,就可以利用 ParticleSystem 的初始化方法直接從文件中導入一個粒子效果,相關代碼如下:
static ParticleSystem * create(const std::string& plistFile);

Plist 文件實質上是一個 XML 文件,我們可以利用任何文本編輯器來創建或修改。
為了創建一個新的粒子效果,我們可以從Cocos2d-x 的測試樣例目錄下找到一個現有的粒子系統 Plist 文件,修改再使用。

實際上,引擎已經內置了若干粒子效果,它們作為粒子系統的樣例,只需要簡單的幾行代碼就可以創建,
內置的幾種粒子效果
ParticleFire                火焰效果
ParticleSun                  太陽效果
ParticleExplosion            爆炸效果
ParticleSnow                 雪花效果

粒子系統繼承自Node,可以被添加到其他節點之中。
在游戲中顯示一個粒子效果十分簡單。
直接把下面的代碼添加到游戲場景的初始化方法中,給游戲場景添加一個雪花效果,即可營造一種冬日氛圍。
準備好一張雪花圖片 snow.png,并在GameScene::init 方法中添加以下代碼:
  ParticleSnow *snow = ParticleSnow::create();   snow->setPosition(Point(480,670));   snow->setTextureWithRect(Director::getInstance()->getTextureCache()->addImage("snow.png"),Rect(0,0,32,32));   addChild(snow);  
成功添加后,就可以看到雪花漫天飄舞的效果了。
23、Cocos2dx 3.0游戲開發找小三之粒子系統:你那里下雪了嗎?

對于任何粒子系統,Texture 都是一個必須設置的屬性,粒子系統中的每一個粒子都使用此紋理渲染出來。
在這個例子中,每一個粒子都被賦予雪花紋理,因此可以呈現出雪花飄落的效果。

創建一個全新的粒子效果需要設定的參數過于繁雜,我們完全可以利用引擎內置的粒子
示例來實現一個粒子效果: 首先找到一個與期望效果類似的粒子效果, 然后修改紋理, 微調參數。

下面我們以 ParticleSnow 為例,展示它是如何設置參數的:
bool ParticleSnow::initWithTotalParticles(int numberOfParticles) {     if( ParticleSystemQuad::initWithTotalParticles(numberOfParticles) )      {         // duration         //時間間隔         _duration = DURATION_INFINITY;          // set gravity mode.         //設置為重力模式         setEmitterMode(Mode::GRAVITY);          // Gravity Mode: gravity         //重力模式參數: 重力         setGravity(Point(0,-1));          // Gravity Mode: speed of particles         //重力模式參數: 粒子速度         setSpeed(5);         setSpeedVar(1);          // Gravity Mode: radial         //重力模式參數: 徑向加速度         setRadialAccel(0);         setRadialAccelVar(1);          // Gravity mode: tangential         //重力模式參數: 切向加速度         setTangentialAccel(0);         setTangentialAccelVar(1);          // emitter position         //粒子發射器位置         Size winSize = Director::getInstance()->getWinSize();         this->setPosition(Point(winSize.width/2, winSize.height + 10));         setPosVar(Point(winSize.width/2, 0));          // angle         //角度         _angle = -90;         _angleVar = 5;          // life of particles         //粒子的生命時間         _life = 45;         _lifeVar = 15;          // size, in pixels         //尺寸(以像素為單位)         _startSize = 10.0f;         _startSizeVar = 5.0f;         _endSize = START_SIZE_EQUAL_TO_END_SIZE;          // emits per second         //每秒發射粒子數         _emissionRate = 10;          // color of particles         //粒子著色         _startColor.r = 1.0f;         _startColor.g = 1.0f;         _startColor.b = 1.0f;         _startColor.a = 1.0f;         _startColorVar.r = 0.0f;         _startColorVar.g = 0.0f;         _startColorVar.b = 0.0f;         _startColorVar.a = 0.0f;         _endColor.r = 1.0f;         _endColor.g = 1.0f;         _endColor.b = 1.0f;         _endColor.a = 0.0f;         _endColorVar.r = 0.0f;         _endColorVar.g = 0.0f;         _endColorVar.b = 0.0f;         _endColorVar.a = 0.0f;          Texture2D* texture = getDefaultTexture();         if (texture != nullptr)         {             setTexture(texture);         }          // additive         //禁用線性疊加混合模式         this->setBlendAdditive(false);         return true;     }     return false; } 


粒子編輯器
windows上的一款粒子編輯器,叫做cocos2d-windows-particle-editor
開源地址: http://code.google.com/p/cocos2d-windows-particle-editor/
23、Cocos2dx 3.0游戲開發找小三之粒子系統:你那里下雪了嗎?

23、Cocos2dx 3.0游戲開發找小三之粒子系統:你那里下雪了嗎?
簡單使用概述與說明:

File:save,save as(導出plist文件),new,Open 

Samples:有test里面的一些例子,暫時版本沒有增加自己添加紋理進來功能

編輯器功能說明:

半徑模式:這種只有圍繞中心運動,這個下面的參數要有效

編輯器:IsBackgroundMove背景是否動,Scale縮放

大小:粒子的開始大小和結束大小

角度:粒子的運動方向...(-90)垂直朝下

生命:粒子生命

位置:設置PosVar值,SourcePosition不用管..設置資源的

紋理渲染:對于一般情況,只需要記住:“我們最常使用的CC_BLEND_SRC和CC_BLEND_DST分別對應GL_ONE和GL_ONE_MINUS_SRC_ALPHA”。

顏色:StartColor, EndColor, StartColorVar, EndColorVar這4個屬性代表著粒子的初始顏色、結束顏色以及其浮動值。

重力模式:重力、速度等的設置

自旋:粒子的旋轉

EmissionRate:粒子的發射速率,即每秒發射的粒子數量。


郝萌主友情提示:
發揮自己的想象力,創建屬 于自己的與眾不同的粒子效果、、、

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

城口县| 靖西县| 临泽县| 榆树市| 连江县| 保定市| 塘沽区| 奉化市| 武功县| 广水市| 佛学| 广宁县| 行唐县| 定结县| 双城市| 思茅市| 五台县| 蓝山县| 阿坝县| 沙田区| 丰镇市| 湖州市| 恩平市| 同德县| 盐山县| 鄂尔多斯市| 道真| 兴和县| 太保市| 延川县| 长沙县| 和平县| 逊克县| 西和县| 遂溪县| 石景山区| 子洲县| 通城县| 康马县| 固镇县| 灵丘县|