检测一个物体何时位于另一个物体上方? (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 不在它之上,那么反应就会发生。
我正在 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 这样的函数来不断检查重叠。
希望对您有所帮助
经过一些研究,我发现由于某种原因,HTML5 无法检测图形之间的碰撞。我使用了另一种方法,如果 object2 的 co-ordinates 与 object1 的相同并且 Y-axis 不在它之上,那么反应就会发生。