问题描述
我有代码 player_rect.colliderect(tile_rects):
其中 player_rect
是单个 Rect
和 tile_rects
是 Rect
的列表.
我收到错误 `builtins.TypeError:
I have the code player_rect.colliderect(tile_rects):
where player_rect
is a single Rect
, and tile_rects
is a list of Rect
s.
I get the error `builtins.TypeError:
参数必须是矩形样式对象
当我尝试运行我的代码时(大概是因为代码不喜欢在单个矩形上有一个矩形列表).
when I try to run my code (presumably as the code doesn't like having a list of rects over a single rect).
我也刚刚发现,当我切换 tile_rects
和 player_rect
的位置时,我反而得到错误
I also just found out than when I switch the positions of tile_rects
and player_rect
I instead get the error
builtins.AttributeError: 'list' 对象没有属性 'colliderect'
我的问题是,如何更改我的代码,以便我可以检查与矩形和矩形列表的冲突?
My question is, how can I change my code so that I can check for collisions with a rect and a list of rects?
推荐答案
使用 pygame.Rect.collidelist
测试矩形是否与矩形列表中的一个发生碰撞.
Use pygame.Rect.collidelist
to test whether a rectangle collides with one of a list of rectangles.
测试矩形是否与矩形序列中的任何一个发生碰撞.返回找到的第一个碰撞的索引.如果未发现冲突,则返回索引 -1.
if player_rect.colliderect(tile_rects) >= 0:
# [...]
这篇关于rect 与 rect 列表的冲突的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!