我制作了一个小程序来为astar算法制作动画。如果你看一下图像,就会有很多黄色汽车在四处移动。那些可能在任何时刻发生碰撞,可能只是其中一个或全部可能只是愚蠢地相互撞击。
如何检测所有这些碰撞?如何找出哪辆特定车撞到了哪辆车?
我想要处理每次碰撞的方法是让它们发生碰撞,或者让一辆车停下来,让另一辆车计算出停在车辆周围的路线。
答案 0 :(得分:3)
更便宜的解决方案是使用itertools
模块仅碰撞汽车组合:
import itertools
for c1 in cars:
collides_environment(c1)
for c1, c2 in itertools.combinations(cars):
collides(c1, c2)
如果你使用这种方法,你只会碰撞一对汽车而不会碰到汽车。
答案 1 :(得分:1)
如果你有车级车,以及车辆清单中的所有实例:
for c1 in cars:
collides_environment(c1)
for c2 in cars:
collides(c1,c2)
你正在使用pygame,而且汽车或多或少是一个正方形。对于碰撞检查,您可以使用函数collideRect
:http://www.pygame.org/docs/ref/rect.html#Rect.colliderect