[英]Jcanvas layer collision
我试图做一个功能来检测是否两层碰撞。 使用Jquery,jcanvas和HTML5 canvas
我正在构建一种飞行模拟器,玩家可以在其中进行上升/下降操作,以免热气球飞向玩家。
我需要检测飞机是否将与气球层碰撞。
我试过检查x / y层的位置,但是由于热气球形状不明显,所以效果不佳。
想象一下:
______________ __
/ \ / / _
/ \ ___/__/_______/ /\
| Air ballon | / Plane 1 /
| | \___\ \_______\ \
\ / \ \ \/
\ / \__\
\ /
\ / __
\ / / / _
\ / ___/__/_______/ /\
\ / / Plane 2 /
\____/ \___\ \_______\ \
|__| \ \ \/
|__| \__\
在我当前的解决方案中,两个平面将同时碰撞。 当计划实际上与空气气球篮碰撞时,我需要飞机2稍后碰撞
您遇到的问题通常称为冲突检测 。
碰撞检测的最常见方法是将每个对象抽象为几何形状,然后检查这些形状是否相交。 常见的选择是矩形或圆形,因为检查它们是否相交非常简单。
另一种方法是使用基于像素的碰撞检测。 您在单独的图层上绘制要检查的两个对象,然后在两个图层上检查每个像素的颜色值。 当两个字母的Alpha值都大于0时,就会发生冲突。 优点是非常准确,但缺点是CPU占用率很高,因为您需要检查很多像素。 为了优化CPU负载,可以将其与几何方法结合使用以减少需要检查的像素数量。
context.getImageData()
两个画布上区域的像素数据。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.