26 Jul 2022, 07:23

 

预备知识

 

介绍

我们经常需要检查两个物体是不是正在触碰彼此。举个例子,如果一个角色碰到了盒子,我们可以让角色坐在盒子上。

 

 

检查两个物体是否正在触碰彼此的最简单方法就是检查他们之间的距离。

 

利用X和Y位置来计算距离

当两个物体都在平地上时,我们只需要使用X和Y位置来检查它们之间的距离:

 

 

举个例子,角色和盒子之间的直线二维距离被展示在下图中:

 

 

演示程序

在这个程序例子中,我们把一个盒子放在Y=100的位置。

 

 
接着,每次我们点击”w“键时,我们都把角色向前移一下:

 

 

动手时刻:

https://play.creaticode.com/projects/836c92f886f791086cf57b1c

 

使用三维距离

有时候,二维距离并不足够准确。举个例子,假设一个物体漂浮在空中,而角色处于物体下方。两者之间的二位距离很接近0,但是他们并没有接触到彼此。要把垂直的距离纳入考量,我们需要计算三维距离:

 

 

演示程序

在这个程序例子中,我们把一个盒子放在Z=140的位置,然后我们把角色移到她和盒子之间的三维距离少过110的位置。

 

 


 

动手时刻:

https://play.creaticode.com/projects/32f4e2bffc79c532fbeba129