Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我可以在不使用精灵的情况下使用.collide rect()吗-皮加梅_Python_Pygame_Collision Detection - Fatal编程技术网

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
的参数是单个矩形,该方法测试两个矩形是否重叠