3-й аргумент pygame.draw.circle()
должен быть кортежем из 2 компонентов, координаты x и y которого совпадают по кругу:
pygame.draw.circle(self.image,self.color,self.speed,5)
pygame.draw.circle(self.image, self.color, (self.width//2, self.height//2), 5)
В приведенном выше примере (self.width//2, self.height//2)
является центром круга, а 5
является радиусом (в пикселях).
Кроме того pygame.sprite.Sprite
объект всегда должен иметь атрибут .rect
(экземпляр pygame.Rect
):
class player(pygame.sprite.Sprite):
def __init__(self, color, width, height, speed):
# Call the parent class (Sprite) constructor
super().__init__()
# [...]
pygame.draw.circle(self.image, self.color, (self.width//2, self.height//2), 5)
self.rect = self.image.get_rect()
Обратите внимание, атрибут .rect
и .image
атрибута * Объект 1029 * используется .draw()
, методом pygame.sprite.Group
для рисования содержащихся спрайтов.
Таким образом, спрайт можно перемещать, изменяя позиция (например, self.rect.x
, self.rect.y
), закодированная в прямоугольнике.