1

我制作了一个小程序来为 astar 算法设置动画。如果你看图像,有很多黄色的汽车在四处移动。它们随时可能发生碰撞,可能只是其中一个或全部可能只是愚蠢地相互碰撞。

如何检测所有这些碰撞?我如何找出哪辆车撞到了另一辆车?

我想处理每次碰撞的方式是让他们撞车,或者让一辆车停下来,让另一辆车计算围绕停止的汽车的路线。

在此处输入图像描述

4

2 回答 2

3

更便宜的解决方案是使用该itertools模块仅碰撞汽车组合:

import itertools

for c1 in cars:
    collides_environment(c1)

for c1, c2 in itertools.combinations(cars):
    collides(c1, c2)

如果你使用这种方法,你只会碰撞成对的汽车,并且不会碰撞汽车。

于 2012-12-11T21:55:37.777 回答
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

于 2012-12-11T20:28:56.783 回答