У вас есть 2 возможности:
Либо добавить атрибуты класса next_x = 45
, которые используются для установки позиции объекта x
. Атрибут должен быть увеличен на 90 после того, как он используется для установки местоположения объекта:
class MovingObj(pygame.sprite.Sprite):
next_x = 45
def __init__(self, x):
pygame.sprite.Sprite.__init__(self)
self.image = pygame.Surface((30, 30))
self.image.fill(RED)
self.rect = self.image.get_rect()
self.rect.x = MovingObj.next_x
MovingObj.next_x += 90
self.rect.y = HEIGHT / 2
self.speedx = -4
Или добавить аргумент в конструктор класса и вычислить позицию при создании экземпляры объектов в l oop.
Добавить аргумент x
в класс MovingObj
:
class MovingObj(pygame.sprite.Sprite):
def __init__(self, x):
pygame.sprite.Sprite.__init__(self)
self.image = pygame.Surface((30, 30))
self.image.fill(RED)
self.rect = self.image.get_rect()
self.rect.x = x
self.rect.y = HEIGHT / 2
self.speedx = -4
Вычислить позицию в l oop (45 + i*90
):
for i in range (3):
obj = MovingObj(45 + i*90)
all_sprites.add(obj)
movingobj.add(obj)