仅沿路径拖动对象

时间:2014-05-27 21:51:30

标签: actionscript-3 flash drag

我正在尝试在Flash中为小游戏级别编写代码时感到非常糟糕。

我正在尝试使用鼠标指针在路径中拖动对象。当对象到达路径边界时,它不应该超越。谁能帮我。我是flash动作3中的菜鸟。 任何帮助都将非常感谢!提前致谢。

1 个答案:

答案 0 :(得分:0)

认为您正在寻找的内容被称为" Bitmap Hit Testing。"它超出了常规命中测试检查的水平。

在常规命中测试(如obj.hitTestObject(otherobj))中,Flash正在检查"边界框"互相攻击。例如,如果你有两个绿色圆圈,你试图相互试验,即使看到白色的角落正在接触,它们也会记录为碰撞。那里有一个围绕圆圈的不可见边界框与另一个圆周围的另一个不可见边界框相撞。

另一方面,位图命中测试明显​​更慢且更复杂,但更准确。它实际上是检查每个像素的像素是否两个图像是碰撞的。在这种情况下,位图可以是不规则的形状,例如,其中的路径,如下所示:

Please excuse my terrible Paint skills; the Bitmap is yellow and the empty space is red.

我建议您查看http://www.freeactionscript.com/tag/using-bitmapdata-hittest/进行演示,以确保这是您正在寻找的内容,然后http://www.mikechambers.com/blog/2009/06/24/using-bitmapdata-hittest-for-collision-detection/进行解释,均由Mike Chambers提供。

我推测你的过程是将两个剪辑(被拖动的对象和路径的#34;墙壁)转换为BitmapData(做一些快速研究),然后是一个简单的方法调用用于检查的BitmapData.hitTest。如果您有任何问题或需要任何其他说明,请与我们联系: - )