1

私はastarアルゴリズムをアニメーション化するための小さなプログラムを作成しています。画像を見ると、黄色い車がたくさん動き回っています。それらはいつでも衝突する可能性があり、それらの1つだけ、またはすべてが愚かに互いに衝突する可能性があります。

これらの衝突をすべて検出するにはどうすればよいですか?どの特定の車が他のどの車に衝突したかを知るにはどうすればよいですか?

それぞれの衝突を処理する方法は、衝突させるか、一方の車を停止させて、もう一方の車に停止した車の周囲のルートを計算させることです。

ここに画像の説明を入力してください

4

2 に答える 2

3

さらに安価な解決策は、itertoolsモジュールを使用して車の組み合わせのみを衝突させることです。

import itertools

for c1 in cars:
    collides_environment(c1)

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

この方法を使用すると、車のペアが1回だけ衝突し、車同士が衝突することはありません。

于 2012-12-11T21:55:37.777 に答える
1

クラスの車があり、車のリストにあるすべてのインスタンスがある場合:

for c1 in cars:
    collides_environment(c1)
    for c2 in cars:
        collides(c1,c2)

あなたはpygameを使用していて、車は多かれ少なかれ正方形です。衝突チェックには、次の関数を使用できますcollideRecthttp ://www.pygame.org/docs/ref/rect.html#Rect.colliderect

于 2012-12-11T20:28:56.783 に答える