Как правильно использовать функцию collidepoint () - PullRequest
0 голосов
/ 16 апреля 2020

Я пытаюсь использовать функцию 'collidepoint', чтобы определить, находится ли игрок в моей игре или касается платформы. Из того, что я понимаю, как вы используете это, вы делаете 'rectangle'.collidepoint (координаты точки, которую вы проверяете внутри). когда я пытаюсь использовать функцию в моей программе, я получаю сообщение об ошибке:

 AttributeError: 'Platform' object has no attribute 'collidepoint'

Должен ли я импортировать модуль для использования этой функции, и правильно ли я это понимаю?

Вот код для функции столкновения, которую я сделал:

def collide(self, platforms):
    for plat in platforms:
        if plat.collidepoint(self.x, self.y):
            return True
    return False

1 Ответ

0 голосов
/ 21 апреля 2020

Я предполагаю, что здесь немного, потому что вы не включили здесь очень много, но из сообщения об ошибке:

 AttributeError: 'Platform' object has no attribute 'collidepoint'

Кажется, у вас есть класс с именем Platform, и вы передаете коллекцию из них в ваш метод столкновения через параметр «платформы». Однако в вашем коде вы пытаетесь вызвать метод collidepoint () для элементов в списке.

Я предполагаю, что ваш класс Platform содержит self.rect, который вы хотите вызывать. В таком случае вам, вероятно, нужно изменить строку на:

        if plat.rect.collidepoint(self.x, self.y)

Но это всего лишь предположение без кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...