这种下雨效果是怎么做的?求思路
小伙看你根骨奇佳,潜力无限,来学PHP伐。
在Canvas遊戲中,針對這種場景,其實採用的最優化的方案進行的,因為有雨或者沒雨都不是遊戲的關鍵,我們也不是遊戲引擎,所以一般這麼做,從簡單到複雜:
使用其他工具,例如PS、AE,讓美術師繪製一個全螢幕下雨動畫圖片(注意是全螢幕),然後將動畫匯出成11幀的PNG圖片使用動畫控件,繪製到當前場景中,一幀一幀的播放即可
使用粒子系統生成,但是粒子比較消耗CPU,除非用在一些關鍵的物件,對於這種錦上添花的效果還真沒意義
針對3D遊戲,如Asphalt等,會專門研發(或購買)水滴引擎,讓水滴有反彈、融合等自然效果,當然,也可以用貼圖,只在螢幕表面下,而非場景內下。
2D遊戲一般都是方案1
所以類似題主提到的這種場景,應該是貼圖,一張一張的貼,效率也高,反正雨滴在表現上循環播放也合理。
如果是有遊戲引擎的話應該是用了粒子吧。
用的png做好的局部下雨圖片,然後代碼控制圖片效果,親測
粒子效果每個雨滴是一個粒子,粒子包含靜態圖片或若干幀的動畫每個粒子有自己的坐標和2維速度,以及生命週期隨著時間變化更改坐標,動畫幀數,就是下雨效果了
當然,下到螢幕下面就重新隨機一個座標和速度,從螢幕上方放進來。
這裡有雪花的效果,可以研究一下原始碼https://github.com/jinatonic/...
用svg 做吧。具體請自行百度
做一個一滴水的落下移動動畫,然後循環整個螢幕的寬高,隨機座標點產生這個動畫
在Canvas遊戲中,針對這種場景,其實採用的最優化的方案進行的,因為有雨或者沒雨都不是遊戲的關鍵,我們也不是遊戲引擎,所以一般這麼做,從簡單到複雜:
使用其他工具,例如PS、AE,讓美術師繪製一個全螢幕下雨動畫圖片(注意是全螢幕),然後將動畫匯出成11幀的PNG圖片
使用動畫控件,繪製到當前場景中,一幀一幀的播放即可
使用粒子系統生成,但是粒子比較消耗CPU,除非用在一些關鍵的物件,對於這種錦上添花的效果還真沒意義
針對3D遊戲,如Asphalt等,會專門研發(或購買)水滴引擎,讓水滴有反彈、融合等自然效果,當然,也可以用貼圖,只在螢幕表面下,而非場景內下。
2D遊戲一般都是方案1
所以類似題主提到的這種場景,應該是貼圖,一張一張的貼,效率也高,反正雨滴在表現上循環播放也合理。
如果是有遊戲引擎的話應該是用了粒子吧。
用的png做好的局部下雨圖片,然後代碼控制圖片效果,親測
粒子效果
每個雨滴是一個粒子,粒子包含靜態圖片或若干幀的動畫
每個粒子有自己的坐標和2維速度,以及生命週期
隨著時間變化更改坐標,動畫幀數,就是下雨效果了
當然,下到螢幕下面就重新隨機一個座標和速度,從螢幕上方放進來。
這裡有雪花的效果,可以研究一下原始碼
https://github.com/jinatonic/...
用svg 做吧。具體請自行百度
做一個一滴水的落下移動動畫,然後循環整個螢幕的寬高,隨機座標點產生這個動畫