首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当有>10个精灵时,我如何处理多个精灵碰撞?

当有>10个精灵时,我如何处理多个精灵碰撞?
EN

Stack Overflow用户
提问于 2012-12-12 04:03:04
回答 2查看 341关注 0票数 1

我做了一个小程序来激活astar算法。如果你看这张图,有很多黄色的汽车在移动。它们可能在任何时刻发生碰撞,可能只是其中之一,也可能是所有它们都可能愚蠢地相互碰撞。

如何检测所有这些冲突?我如何找出哪辆车撞上了另一辆车?

我希望处理每一次碰撞的方法是要么让它们相撞,要么让一辆车停下来,让另一辆车计算出一条绕过停着的车的路线。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-12 05:55:38

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

代码语言:javascript
复制
import itertools

for c1 in cars:
    collides_environment(c1)

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

如果您使用此方法,您将仅碰撞成对的汽车一次,并且不会碰撞汽车本身。

票数 3
EN

Stack Overflow用户

发布于 2012-12-12 04:28:57

如果您有car类,以及cars列表中的所有实例:

代码语言:javascript
复制
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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13827607

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档