我做了一个小程序来激活astar算法。如果你看这张图,有很多黄色的汽车在移动。它们可能在任何时刻发生碰撞,可能只是其中之一,也可能是所有它们都可能愚蠢地相互碰撞。
如何检测所有这些冲突?我如何找出哪辆车撞上了另一辆车?
我希望处理每一次碰撞的方法是要么让它们相撞,要么让一辆车停下来,让另一辆车计算出一条绕过停着的车的路线。

发布于 2012-12-12 05:55:38
一个更便宜的解决方案是使用itertools模块仅用于碰撞汽车组合:
import itertools
for c1 in cars:
collides_environment(c1)
for c1, c2 in itertools.combinations(cars):
collides(c1, c2)如果您使用此方法,您将仅碰撞成对的汽车一次,并且不会碰撞汽车本身。
发布于 2012-12-12 04:28:57
如果您有car类,以及cars列表中的所有实例:
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
https://stackoverflow.com/questions/13827607
复制相似问题