问题描述
嗨,我正在尝试使用pygame制作一个简单的2D汽车游戏,并且试图在两辆汽车之间添加碰撞,但是我一直遇到此错误:
Traceback (most recent call last):
File "C:\Users\emilio pinto\Desktop\Running car proj\Running car.py",line 69,in <module>
if pygame.Rect.collidelist(car1,car2) >= 0:
TypeError: Argument must be a sequence of rectstyle objects.
我非常确定我一直都在使用.Rect模块,无论如何,这些是变量以及我如何使用它们:
car1=pygame.Rect((xCar,yCar),(60,30))
car2=pygame.Rect((xCar2,yCar2),30))
if pygame.Rect.collidelist(car1,car2) >= 0:
running=False
screen.fill((0,0))
screen.blit(loseText,(142,90))
screen.blit(loseText2,(110,170))
pygame.display.flip()
if keys[pygame.K_SPACE]:
running=True
continue
解决方法
这应该可以解决您的问题:
if pygame.Rect.colliderect(car1,car2) >= 0:
说明:
您使用了错误的函数或该函数的错误参数。
对两个对象使用Rect.colliderect
:
https://www.pygame.org/docs/ref/rect.html#pygame.Rect.colliderect
或将Rect.collidelist
用于对象列表。因此,必须将car1
和car2
放在列表对象中。
https://www.pygame.org/docs/ref/rect.html#pygame.Rect.collidelist