Невозможно использовать точки столкновения pygames с другими классами

У меня были некоторые проблемы с использованием метода collidepoint Pygame через другой класс:

if(mouseclick[0]):
    for tile in self.engine.level.levellist:
        if tile.collidepoint(mousepos):

Этот небольшой и простой код дает мне ошибку:

if tile.collidepoint(mousepos):

AttributeError: TileClass instance has no attribute 'collidepoint'

Кто-нибудь знает, что я делаю неправильно? Прошло некоторое время с тех пор, как я использовал python, и я, вероятно, просто упускаю некоторые из них, которые легко исправить.


person Tobias Laving    schedule 24.09.2013    source источник
comment
Где определяется TileClass? Вы просто не присвоили ему атрибут collidepoint.   -  person Veedrac    schedule 24.09.2013


Ответы (1)


collidepoint — это метод класса Rect.

Ваш TileClass не имеет collidepoint (об этом говорит вам ошибка), но если он имеет атрибут rect (поскольку он необходим для Sprites), ваш код, вероятно, должен выглядеть так:

if(mouseclick[0]):
    for tile in self.engine.level.levellist:
        if tile.rect.collidepoint(mousepos):

Но вы не показали свой TileClass класс, так что это всего лишь предположение.

person sloth    schedule 24.09.2013