0

我正在尝试为学校目的开发一个 android runner 游戏.. 我对此还是新手,请我需要你的帮助..

你们可以在 >>> http://www.filedropper.com/test_37查看我的 CS5flash 文件

障碍物和硬币是随机的。但是障碍物和硬币是相互重叠的。这对于跑步游戏来说是非常糟糕的,因为它看起来非常糟糕,而且游戏玩法变得非常非常复杂。

我该如何解决??有什么办法可以解决吗。。

而且我也在考虑是否可以将障碍物和硬币设置到特定区域(不是随机的)。所以游戏会更有组织,玩法也不会复杂。我仍然不知道-_-。

但我还是更喜欢随机。所以请各位大神帮我修一下。。

4

1 回答 1

0

您将需要更改添加硬币和障碍物的方式!我建议为每个人使用一个计时器。Atm 您在每一帧上添加大量它们,计算重叠会占用太多资源!并将它们放入 aarray或更好的 a中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;
}

它的性能仍然相当昂贵。但是只有几个对象你应该没问题

于 2013-03-01T10:45:16.850 回答