落下的物体电晕

时间:2013-07-26 10:55:54

标签: algorithm timer corona

我正在尝试创建一个坠落物体游戏。但是,我很难为这个游戏创造水平。它不会改变场景或任何东西,但我希望它在整个过程中更难。有坏的和好的物品掉落,角色应该吃好的物品,避免坏物品。

我正在使用createItem函数创建那些坏的和好的项目,并使用两个timer.performWithDelay调用此函数。这些物品随机掉落。一个用于好物品,一个用于坏物品。然而,有时坏项目属于好项目,并且不可能抓住好项目。我怎么能阻止它?我添加了一个碰撞过滤器,让这些物品相互通过,这就是为什么它们在另一个物体之下的原因。

以下是我使用两个计时器调用createItem的方法:

 goodTimer = timer.performWithDelay(1000, function() createItem(goodItem[math.random(1,#goodItem)],1) end, 0 )

 badTimer = timer.performWithDelay(5000, function()  createItem(badItem[math.random(1,#badItem)],0) end, 0 )

1 个答案:

答案 0 :(得分:0)

如果您想要确定性行为(例如,始终可以选择获得一个好项目),则必须重新定义随机布局,以便在任何情况下都不会影响此行为。根据您的描述,您只是将碰撞考虑在内,这并不代表对纯随机性的准确修正。

在这种情况下,我会:

  • 设置一个"安全区域"围绕每个项目。例如:2 时间高度/宽度给定项目。
  • 使每个项目的生成依赖于其他(现有)项目。例如:在创建好项目之前,您的算法应检查是否已存在可能会干扰它的现有错误项目。也就是说,如果通过考虑上述安全区域,两件物品都有可能处于您不想要的情况。通过计算当前速度下相应安全区域的预期碰撞点,可以很容易地进行该分析。如果发现可能发生碰撞,项目的生成将被延迟,完全被忽略或其类型可能会改变(从坏到好,反之亦然)。
  • 设置碰撞规则,但正如最安全方面的修正后一样,只要大多数情况应由上述各点解释。