如何在主游戏循环中“随机化”动画

时间:2012-09-01 05:33:25

标签: android animation random game-loop

我有一个动画(见下面的视频链接),它是我正在处理的应用程序的一部分。我基本上有鱼在屏幕上游泳。目前我有一个大约20条鱼的阵列,每条鱼最初一个接一个地定位,然后按顺序“游”在屏幕上。我的问题是,这不是我想要的行为。这只是一个临时的解决方法。我需要做的是,在每条鱼达到一定的阈值后(假设小于画布宽度的最后1/5),从阵列中选择另一条鱼随机,定位,然后游过。 / p>

这应该在活动的整个生命周期中重复。我尝试在每条鱼到达该点时生成一个随机数,然后使用它将鱼定位在该指数处,然后将其浮动,但是一个明显的问题是,如果选择的随机数对应于鱼的指数在画布上已经很好......它会消失(这样它可以重新定位,等等)。除了这个问题,从我对游戏开发的理解。到目前为止(我仍然是一个初学者)..应该不惜一切代价避免主游戏循环内的随机数生成。但我只是不确定有任何其他方法可以解决这个问题。希望从更有经验的开发者那里获得一些方法的见解。多谢你们。这是我为此问题发布的YouTube视频的链接

https://www.youtube.com/watch?v=QM6t6f9TaUQ&feature=youtube_gdata_player

TL; DR - 我希望一堆鱼以随机顺序游过尖叫声,并重复此过程,直到用户退出活动/应用程序。

2 个答案:

答案 0 :(得分:1)

如果鱼类之间的间距在应用程序的生命周期内保持不变,那么只需在应用程序启动时生成随机的鱼际偏移量即可。第一次游泳...当它到达随机偏移#1时,鱼#2进入。当鱼#2到达随机偏移#2时,鱼#3进入,依此类推。当一条鱼离开屏幕的另一侧时,它会回到队列中等待进入。

答案 1 :(得分:1)

你不是在游戏循环的每一帧都这样做,所以任何表现都是无足轻重的。

至于做到这一点的方式: 我会说,制作一个List<Integer>并用你所拥有的鱼的索引填充它。

当鱼放在屏幕上时,从列表中remove

当要选择新鱼时,从0到列表长度随机选择。

当一条新鱼从屏幕上游走时,add它会回到列表中。