在AS3中堆叠粒子/任意大小的圆圈

时间:2010-09-09 23:05:16

标签: flash actionscript-3 actionscript

我正在尝试将粒子堆叠在一起,几乎就像沙子堆积在一小时玻璃中一样。

我不想要一堆,我希望它从左到右堆叠。理想情况下,它们会以递增的速度从顶部流入,就像每隔几秒一次。现在,他们只是流行。

我陷入了一个错误,开始将圆圈的坐标放在0,0。它会随机发生,具体取决于圆圈的大小和当前数量。我不知道问题是什么,我希望我能找到一个我现在可以使用的类似API的API。我非常感激,并且非常感谢任何帮助或想法!

http://jevinkones.com/circles/

2 个答案:

答案 0 :(得分:1)

要么在进展时传播x-y不正确,要么在坐标超过画布大小时发生某种溢出,并且它们默认为(0,0)。

这是ActionScript调试器的理想选择。每次实例化圆时,都可以在圆x和y位置的赋值上设置断点。然后,当你注意到它是零时,你可以查看调用堆栈并找出这些东西是如何被调用的。

如果您不熟悉调试器,则可以提醒您正在堆叠的每个圆圈的坐标。调试器似乎是这项工作的正确工具。

我希望这有用!

-Brian J. Stinar -

答案 1 :(得分:0)

问题发生在同一点,当圆圈未能在第三或第四行左转。将圆圈设置为左侧的计算似乎是错误的。

一旦圆圈与另一个圆圈重叠,其余圆圈就不会得到正确的值。这可能实际上是你逻辑上的一个缺陷,圈子太相互依赖,所以一个错误会导致一切都失败。

另外,您可以看到每次创建新行时,圆圈会进一步添加到屏幕的右侧,因此使用swf大小,最多可以有5行或6行左边的白色空间。

而不是找到“bug”,我建议尝试&想到另一种方法,可能会简化圆圈的位置,删除随机元素。找出一种方法来均匀填充空间,然后再添加随机元素