2012-09-01 19 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