【问题标题】:How do I test if two <img> are touching each other如何测试两个 <img> 是否相互接触
【发布时间】:2015-01-06 04:37:32
【问题描述】:

我正在尝试制作这个你们互相战斗的迷你游戏。我使用了两个&lt;img&gt;s 作为角色,我在两个&lt;img&gt;s 上都向下移动了,但是,我想这样做,所以当&lt;img&gt;s 接触到你时,你可以选择打它们。

我要问的是如何测试它们是否在触摸。我很确定我可以处理其他所有事情,如果不能,我可以查找任何内容。我已经尝试查找它数百次,但没有一个人真正谈论 &lt;img&gt;s 只喜欢 div。如果他们真的谈论&lt;img&gt;s,那会非常令人困惑。

【问题讨论】:

  • 为什么不能将“他们”所说的关于&lt;div&gt; 元素的内容应用于&lt;img&gt; 元素?

标签: javascript jquery image


【解决方案1】:

检查两个&lt;img&gt; 元素是否相互接触或重叠的一种方法是利用$.position()、$.height() 和$.width() 函数检索每个元素的左上角位置、高度和宽度,分别。

使用这些函数,您可以计算图像元素的左上角、右上角、左下角和右下角四个坐标。每个坐标应该有一个 x 坐标和一个 y 坐标。然后,您还必须实现 overlap 算法来检查图像元素的坐标,以查看它们是否相互接触或重叠。

你可以看看这个fiddle。

  • coordinates 函数计算元素的四个坐标。
  • incomplete overlap 函数检查两个元素的坐标。
  • 您可以通过更改right css 属性的值来水平滑动第二张图片。

就像我说的,overlap 函数不完整;它只检查两个元素的顶部 x 坐标是否接触/重叠。 (不会为你做所有的事情:-))

可能还有其他更简单的方法可以做到这一点,但这适用于我构建的游戏。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2016-06-18
  • 1970-01-01
  • 2021-06-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多