如何解决为什么以下代码中的距离必须小于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教程。代码在描述中。
解决方法
游戏中的角色不是单点对象,它们在表示对象的点周围占据一些空间。考虑这些图像中的圆形对象:
两个对象的中心之间的距离分别为> 0
和<= radius
,但在第一种情况下会发生碰撞。如果我们在检测碰撞时没有考虑半径,该程序将不会检查碰撞检测,而是会检查对象是否重合。
我不了解您要遵循的教程,但是除其他可能性外,两个对象的半径都有可能为14。因此,将两个对象的半径相加可得出28,并且只要两个对象之间的距离为对象变成< 28
即<= 27
,可以看作是碰撞。这可能就是选择27
的原因。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。