python - 了解碰撞列表中哪个矩形发生了碰撞

标签 python pygame collision-detection collision

当我的子弹接触到矩形时,我试图在碰撞列表中找到特定的矩形。 我有 92 个矩形,每个矩形都有一个类型:“不透明”、“透明”。 当我在游戏启动时创建矩形时,我将它们放在一个列表中,以便在测试碰撞列表后进行。另一个列表按顺序包含所有类型。 喜欢

collide_wall_list = [rect,rect,rect,rect]
#Each rect is a pygame.draw.rect

wall_type_list = ["Opaque","Opaque","Opaque","Transparent"]

它们是按顺序创建的,因此第二个矩形是第二种类型。

if new_bullet_list[n].collidelist(collide_wall_list) != -1:

这是为了测试我的子弹是否与矩形列表发生碰撞。 现在的问题是,使用碰撞列表,我们无法知道哪些矩形正在发生碰撞。 您知道如何知道哪些矩形正在发生碰撞吗?然后对于类型来说就很容易了,因为矩形和类型位于相同的位置。

最佳答案

collidelist 返回第一次碰撞的索引,如果没有发生碰撞则返回 -1:

“测试矩形是否与一系列矩形中的任何一个碰撞。返回找到的第一个碰撞的索引。如果没有发现碰撞,则返回索引 -1。”

http://www.pygame.org/docs/ref/rect.html

关于python - 了解碰撞列表中哪个矩形发生了碰撞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35606088/

相关文章:

python - 类型错误: 'int' 对象在 Python 3.2 中不可调用?

c# - 与不可见网格的 Irrlich 碰撞

python - 混合整数编程 - 仓库位置 (Python + GLPK)

python - 如何使用 IPython %lprun 魔术函数分析类方法

python - 考虑删除获取接近的字符串匹配 - python

c# - 碰撞取决于矩形的边?

javascript - 我该如何改进这个 JavaScript 碰撞检测?

python - 覆盖 sphinx 的 autodoc 中的函数声明

python - pygame类结构

python - 如何检测 Sprite 是否已在pygame中被点击