Как повторить определённый фрагмент кода?
while True:
screen.fill((0, 0, 0))
pygame.time.delay(30)
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
exit()
if oneY < 1080:
oneY += speed
if oneY == 1080:
oneX2 += speed2
if oneX2 > 1920:
oneY3 += speed
if oneY3 > 1080:
oneX4 += speed
screen.blit(img, (oneX, oneY))
screen.blit(img2, (oneX2, oneY2))
screen.blit(img3, (oneX3, oneY3))
screen.blit(img4, (oneX4, oneY4))
pygame.display.update()
Мне нужно, чтобы повторялся этот фрагмент кода:
if oneY < 1080:
oneY += speed
if oneY == 1080:
oneX2 += speed2
if oneX2 > 1920:
oneY3 += speed
if oneY3 > 1080:
oneX4 += speed
Ответы (1 шт):
Автор решения: NkL322
→ Ссылка
Можно использовать вызов функции следующим способом:
def foo():
if oneY < 1080:
oneY += speed
if oneY == 1080:
oneX2 += speed2
if oneX2 > 1920:
oneY3 += speed
if oneY3 > 1080:
oneX4 += speed
for i in range(5):
foo()
Если используются не глобальные переменные, нужно добавить параметры к функции:
def foo(oneY, oneX2, oneY3, oneY3, oneX4, speed):
if oneY < 1080:
oneY += speed
if oneY == 1080:
oneX2 += speed2 # speed?
if oneX2 > 1920:
oneY3 += speed
if oneY3 > 1080:
oneX4 += speed
for i in range(5):
foo()
Если данные операции нигде больше выполнять не нужно, проще будет сделать так:
for i in range(5):
if oneY < 1080:
oneY += speed
if oneY == 1080:
oneX2 += speed2
if oneX2 > 1920:
oneY3 += speed
if oneY3 > 1080:
oneX4 += speed