我正在尝试为学校目的开发一款Android转轮游戏。 我还是新手,请我帮忙..
你们可以在>>>上查看我的CS5flash文件http://www.filedropper.com/test_37
障碍物和硬币是随机的。但是障碍和硬币相互重叠。这对于亚军游戏来说非常糟糕,因为它看起来非常糟糕,而且游戏玩法变得非常复杂。
我该如何解决?有没有办法解决它?
而且我也在考虑是否可以将障碍物和硬币设置到特定区域(而不是随机)。因此游戏将更加集中化,游戏玩法也不会复杂。我还是不知道-_-。
但我仍然喜欢它随意。所以大家请帮我解决..
答案 0 :(得分:0)
您需要更改添加硬币和障碍物的方式!我建议每个人使用一个计时器。 Atm你在每一帧都添加了大量的,计算重叠会占用太多资源!并将它们放在array
或更好的vector
中!我会建议你使用object Pool
!
所以限制可以出现的硬币和障碍的数量,比如大约5个左右。然后当他们在屏幕外或收集时从阵列/矢量中删除它们!然后当你添加新的东西时,你可以检查数组/向量是什么允许的值!
当你得到你的数组时,你可以将它传递给randomRange()
函数并驱逐这些值!
看起来像这样的东西!不是测试!!
function randomRange (min:Number, max:Number, exclude:Array = null):int
{
var val:int = (min + Math.random() * (max - min)) >> 0;
if (exclude)
{
for (var i:int = 0; i < exclude; i++)
{
while ((val < exclude[i].x + exclude[i].width) && (val > exclude[i].x))
{
val = (min + Math.random() * (max - min)) >> 0;
}
}
}
return val;
}
它的性能仍然相当昂贵。但只有少数对象你应该没问题