检测一个物体何时位于另一个物体上方? (HTML5)

Detect when one object is over another? (HTML5)

我正在 HTML5 Canvas 中创建一个游戏,它需要一个动作在一个对象(图形)越过另一个对象(也是图形)时执行。

网上看到的方法我都试过了,好像都不行。 我希望代码与鼠标悬停功能类似,但我已经尝试过但没有成功。

这是一个可能的功能吗?可以用图形实现吗?

这是我在 AS3 中的原始代码:

        object1.addEventListener( Event.ENTER_FRAME, handleCollision)

        function handleCollision( e:Event ):void
        {
            if (object2.hitTestPoint(object1.x, object1.y, true))
            {
               // object2 collided with object1
                trace("Collision");u

            }
        }

您必须使用 BitmapData.hitTest 进行像素级检测。这是一个参数,所以你需要有一个像 enter_frame 这样的函数来不断检查重叠。

您可以找到使用 BitmapData.hitTest 检测与代表游戏区域的精灵失去联系的示例。你的要求是相反的,检测与另一个精灵的接触。但本质上是一样的。

希望对您有所帮助

经过一些研究,我发现由于某种原因,HTML5 无法检测图形之间的碰撞。我使用了另一种方法,如果 object2 的 co-ordinates 与 object1 的相同并且 Y-axis 不在它之上,那么反应就会发生。