2

我正在开发一个 2d android 策略游戏,它在 SurfaceView 上运行,所以我不能(或者我可以?)使用 LibGdx 的粒子系统。我想做一个下雨的效果,我的目标是这样的(http://ridingwiththeriver.files.wordpress.com/2010/09/rain-fall-animation.gif),我不需要飞溅最终效果(虽然那会很棒,但可能会占用大量系统资源)。我怎样才能达到那种下雨的效果?有任何想法吗?

4

3 回答 3

3

在此处输入图像描述有一个类似的代码来自JakeWharton称为 DroidFlake。看起来像降雪效果,但值得检查DroidFlake

于 2012-09-01T23:32:48.260 回答
1

最简单的方法是将雨滴放入带有 alpha 的 PNG 并在最后显示。您只需要几帧即可使其平滑,但如果这是全屏图像,它会占用一些资源。

如果您负担不起,您可以将每个不同的雨滴放在一个较小的带有 alpha 的 PNG 文件中,然后多次显示这个(这些)单个 PNG。这将大大减少内存的使用,尽管您的渲染代码会变得更加复杂,并且取决于您有多少滴,它可能会影响性能。

两者之间的权衡是要有一个包含更多滴的PNG文件,但不是全屏,并显示几次。

您可以在雨滴溅起的另一帧(或多个帧)中显示,您可以在结束每个水滴的动画之前显示它,或者您可以让大 PNG 中的最后一帧包含飞溅。

于 2012-09-01T22:35:53.500 回答
1

有很多方法可以做到这一点。您可以创建一个精灵表,如:

在该精灵表中,您可以简单地在每一帧中推进一滴水,直到它到达底部并创建飞溅效果。然后,您需要能够对其进行动画处理(非常简单)。然后,您可以创建图像的多个实例,或多次绘制一个图像以创建暴雨。

于 2012-09-01T22:39:40.237 回答