Witam, tworze gre Space Invaders. na razie zrobiłem poruszający sie statek za pomocą strzałek,który może wystrzeliwać pociski i 1 rząd poruszających się kosmitów. Kosmiczne potwory po osiągnięciu określonej wpółrzędnej x pojedynczo zmieniają położenie y o 40 i idą znowu w drugą strone x. Chciałbym żeby ktoś doradził co moge zrobić żeby po osiagnięciu przez kosmite określonej współrzędnej x wszystkie potwory naraz poszły w dół o 40 pikseli. Dodając kod w funkcji init wyskakuje caly czas ten sam bład, a w funkcji update zawiesza mi sie program oraz chciałbym też dodać 2 rząd kosmitów nie kopiując tego samego kodu 2 razy. Oto fragment mojego kodu:

class Monster1(games.Sprite):
    image = games.load_image("Monster1.bmp")
    TIME = 50
    POSITION = 10
    def __init__(self, x = 92, y = 20):
        super(Monster1, self).__init__(image = Monster1.image,
                                       x = x,
                                       y = y,
                                       dx = Monster1.POSITION)   
        self.time = 50
        
    def update(self):
        if self.time > 0:
            self.time -= 1
            self.x -= self.dx
        if self.time <= 0:
            self.x += self.dx
            if self.x <= 20:
                self.x = 20
                self.y += 40
                self.dx = -self.dx
            if self.x >= 605:
                self.x = 605
                self.y += 40
                self.dx = -self.dx
            self.time = Monster1.TIME

def main():
    value = 92
    monsters = []
    for i in range(11):
        value += 40
        x = value
        monster1 = Monster1(x = x, y = 20)
        monsters.append(monster1)
        games.screen.add(monster1)