Python 我可以在不使用精灵的情况下使用.collide rect()吗-皮加梅
我正在尝试做一个小的无止境的跑步者,并且已经完成了大部分的事情,唯一剩下的就是碰撞检测。 我知道()函数,但无法使其工作。我可能只是做错了,但我不知道如何修复它 现在我有一个这样的玩家职业:Python 我可以在不使用精灵的情况下使用.collide rect()吗-皮加梅,python,pygame,collision-detection,Python,Pygame,Collision Detection,我正在尝试做一个小的无止境的跑步者,并且已经完成了大部分的事情,唯一剩下的就是碰撞检测。 我知道()函数,但无法使其工作。我可能只是做错了,但我不知道如何修复它 现在我有一个这样的玩家职业: class Player: def __init__(self): self.size = (20, 40) self.color = white self.pos = [200, 330] self.shape_body = (self.pos, self.size)
class Player:
def __init__(self):
self.size = (20, 40)
self.color = white
self.pos = [200, 330]
self.shape_body = (self.pos, self.size)
self.rect = pygame.Rect(self.shape_body)
障碍
class obstacle_ground1:
def __init__(self):
self.pos = [1000, 330]
self.size = (40, 40)
self.shape = (self.pos, self.size)
self.rect = pygame.Rect(self.shape)
self.color = white
(我有不同的,这就是为什么有1)
所有障碍物都在一个列表中,我想检查是否有这样的碰撞
def Check_if_dead(self):
return self.rect.collidedict(obstacles[0].rect)
作为Player类的函数
但是我得到了一个打字错误:
参数必须是带有rectstyle键的dict
我现在知道我可以也可能应该使用精灵,但我不想重做其他任何事情,因此如果你知道解决方法或只是注意到我犯了一个愚蠢的错误,请告诉我,你会收到错误消息 参数必须是带有rectstyle键的dict 因为你使用了错误的方法 如果要测试两个矩形是否相交,则必须使用该方法,而不是:
返回self.rect.collidedict(障碍[0].rect)
返回self.rect.colliderect(障碍[0].rect)
collidedict
的参数必须是字典。该方法将测试字典中的一个矩形是否相交。colliderect
的参数是单个矩形,该方法测试两个矩形是否重叠