我正在用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
}
}
答案 0 :(得分:1)
您必须使用BitmapData.hitTest进行像素级别检测。这是一个参数,因此您需要有一个诸如enter_frame之类的函数来不断检查是否存在重叠。
Here,您可以找到一个使用BitmapData.hitTest检测与代表游戏区域的精灵失去联系的示例。您的要求相反,要检测与另一个精灵的接触。但这本质上是相同的想法。
希望有帮助
答案 1 :(得分:0)
经过一些研究,我发现由于某些原因在HTML5中无法进行图形之间的冲突检测。相反,我使用了一种替代方法,如果object2的坐标与object1的坐标相同,而Y轴不在其上方,则将发生反应。