2012-09-01 43 views
2

我正在開發一個2d的android戰略遊戲,它運行在SurfaceView上,所以我不能(或者可以嗎?)使用LibGdx的粒子系統。我希望發揮下雨的效果,我的目標是這樣的(http://ridingwiththeriver.files.wordpress.com/2010/09/rain-fall-animation.gif),我不需要最終的飛濺效果(雖然這將是非常棒的,但可能會佔用大量的系統資源) 。我怎麼能達到那種下雨效果?有任何想法嗎?如何在Android上創建Raining效果(粒子)?

回答

1

最簡單的方法是將雨滴放在帶alpha的PNG中,並在最後顯示。你只需要幾幀就可以使其平滑,但如果這是全屏圖像,它會吃掉一點資源。

如果你買不起這個,你可以把每個不同的雨滴放在一個帶有alpha的小PNG文件中,然後多次顯示這個(這些)單個PNG。這會減少很多使用的內存,儘管您的渲染代碼會變得更復雜一些,並且取決於您擁有多少滴,這可能會影響性能。

兩者之間的折中應該是讓一個PNG文件包含更多的下落,但不是全屏,並顯示幾次。

您可以在結束每個投影的動畫之前顯示雨滴飛濺的另一幀(或多個幀),或者您可以讓大PNG中的最後一幀包含飛濺。

1

有很多方法可以做到這一點。你可以創建一個精靈表,如:http://i.imgur.com/k296H.png

在這個spritesheet中,你可以簡單地在每一幀中有一滴水前進,直到它到達底部並且你創建了飛濺效果。然後你需要能夠動畫(非常簡單)。然後,您可以創建圖像的多個實例,或多次繪製一個圖像來創建暴雨。

+0

根據你的記憶預算有多緊張,以及這是否會與你的實際雨資源看起來不錯,它可能是值得使用只有一個(或至少儘可能少)PNG文件,並從屏幕的頂部到底部繪製它,以創建下雨的幻覺。 – IVlad

3

enter image description hereJakeWharton有一個類似的代碼叫DroidFlake。它看起來像降雪效果,但值得檢查DroidFlake