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

时间:2019-06-12 19:36:47

标签: html actionscript-3 html5-canvas game-development

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

我尝试了在线上看到的方法,但似乎无效。 我原本希望代码类似于Mouseover函数,但是我已经尝试过了,但是它不起作用。

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

这是我在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

            }
        }

2 个答案:

答案 0 :(得分:1)

您必须使用BitmapData.hitTest进行像素级别检测。这是一个参数,因此您需要有一个诸如enter_frame之类的函数来不断检查是否存在重叠。

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

希望有帮助

答案 1 :(得分:0)

经过一些研究,我发现由于某些原因在HTML5中无法进行图形之间的冲突检测。相反,我使用了一种替代方法,如果object2的坐标与object1的坐标相同,而Y轴不在其上方,则将发生反应。