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)