11.4.2 计算单击和宝藏之间的距离

  要搞清楚玩家是热还是冷(接近宝藏或者远离宝藏),我们需要测量玩家单击和藏宝之间的距离。为了做到这点,编写了一个名为getDistance的函数,如下所示:

《javascript-少儿编程》第11章单击事件处理程序之计算单击和宝藏之间的距离

  getDistance函数接受两个对象作为参数,即event和target。event对象是传递给单击事件处理程序的对象,并且它带有关于玩家单击的很多内建信息。特别是,它包含了名为offsetX和offsetY的两个属性,它们告诉我们单击的x坐标和y坐标,这是所需的具体信息。

  在该函数中,变量diffX存储了单击位置和目标之间的水平距离,这是通过将target.x(宝藏的x坐标)和event.offsetX(单击的x坐标)相减而计算得到的。以同样的方式计算了两个点之间的垂直距离。并且将结果存储为diffY。图11-2展示了如何计算两点之间的diffX和diffY。

《javascript-少儿编程》第11章单击事件处理程序之计算单击和宝藏之间的距离

图11-2 计算event和target之间的水平距离和垂直距离