微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么以下代码中的距离必须小于27

如何解决为什么以下代码中的距离必须小于27

我正在观看有关pygame的YouTube教程,并且该人做了以下碰撞:

def isCollision(x1,y1,x2,y2):
    distance =  root of (x1 - x2)^2 + (y1 - y2)^2
#i kNow this is not how you do it but using the math module takes too long 
    if distance > 27:
        return True
    else:
        return False

我想问他如何决定距离必须小于27。我的意思是为什么27 ??? 如果代码不够用,则视频由freeCodeCamp.org提供,该视频称为初学者的Pygame教程。代码在描述中。

解决方法

游戏中的角色不是单点对象,它们在表示对象的点周围占据一些空间。考虑这些图像中的圆形对象:

enter image description here

两个对象的中心之间的距离分别为> 0<= radius,但在第一种情况下会发生碰撞。如果我们在检测碰撞时没有考虑半径,该程序将不会检查碰撞检测,而是会检查对象是否重合。

我不了解您要遵循的教程,但是除其他可能性外,两个对象的半径都有可能为14。因此,将两个对象的半径相加可得出28,并且只要两个对象之间的距离为对象变成< 28<= 27,可以看作是碰撞。这可能就是选择27的原因。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。