У меня есть класс в моей программе pygame, который расширяет спрайт и эффективно дает столкновение и еще много чего прямоугольнику. __init__
класса выглядит следующим образом:
def __init__(self,topleft,size,label):
pygame.sprite.Sprite.__init__(self)
self.image = pygame.Surface(size)
self.rect = self.image.get_rect()
self.rect.topleft = topleft
self.image.fill([128,128,128])
pygame.draw.rect(self.image, [200,200,200], self.rect, 5)
И это прекрасно работает... для одного прямоугольника. Проблема в том, что после этого прямоугольника все остальные представляют собой прямоугольники сплошного цвета с цветом заливки (128,128,128), а не закрашенным прямоугольником с границей другого цвета (200,200,200). Я ожидаю, что это какая-то проблема с переменными класса, а не с переменными экземпляра, но я не уверен, в чем проблема.
self.rect = pygame.Rect(0,0,*size)
вместоself.image.get_rect()
, возникает ли та же проблема? Все, что я могу думать, это то, что прямоугольник рисуется не в том месте, хотя его верхний левый угол должен быть равен 0,0. (Если вы где-то применяете этот аргументtopleft
кself.rect
, то, возможно, функция отводит прямоугольник от источникаself.image
?) - person Augusta   schedule 02.02.2015