我正在开发一款2D战略游戏,它在SurfaceView上运行,所以我不能(或者我可以?)使用LibGdx的粒子系统。我想做一个下雨的效果,我的目标是这样的事情(http://ridingwiththeriver.files.wordpress.com/2010/09/rain-fall-animation.gif),我最终不需要飞溅效果(尽管那会很棒,但可能会占用很多系统资源)。我怎么能达到下雨的效果呢?有什么想法吗?
答案 0 :(得分:3)
来自JakeWharton
的一个类似代码叫做DroidFlake。这似乎是降雪效应,但值得检查DroidFlake
答案 1 :(得分:1)
最简单的方法是将雨滴放入带有阿尔法的PNG中并在最后显示。你只需要一些帧来使它平滑,但如果这是一个全屏图像会占用一些资源。
如果你负担不起,可以将每个不同的雨滴放在一个带有alpha的较小的PNG文件中,然后多次显示这个(这些)单个PNG。虽然你的渲染代码会变得更复杂,但这取决于你有多少掉落,这可能会影响性能。
两者之间的权衡将是一个包含更多丢弃的PNG文件,但不是全屏,而是显示几次。
你可以有另一个(或多个框架)雨滴溅起的框架,你可以在结束每个掉落的动画之前显示,或者你可以让大PNG中的最后一个框架包含飞溅。
答案 2 :(得分:1)
有很多方法可以做到这一点。您可以创建一个精灵表,如:http://i.imgur.com/k296H.png
在那个spritesheet中,你可以在每一帧中放一滴水,直到它到达底部,然后你就会产生飞溅效果。然后,您需要能够为其设置动画(非常简单)。然后,您可以创建图像的多个实例,或多次绘制一个图像以创建暴雨。