Хорошо, поэтому вместо нескольких циклов for игра l oop - это время l oop, которое выполняется, пока пользователь не захочет выйти (обычно через X вверху справа). Вы заметите, что в вашей программе после циклов for окно закрывается, это исправление.
Начнем с настройки, это то же самое, что и ваша программа
import pygame
pygame.init()
size = (500,500)
screen = pygame.display.set_mode(size)
red = (255,0,0)
black = (0,0,0)
running = True #this is true while the game is running
Следующий шаг - l oop
while running: #loop while the game is running
for event in pygame.event.get(): #get all events (eg. clicks, key presses, key ups, ETC)
if event.type == pygame.QUIT: #if the user clicked the X button
running = False #stop running the program
pygame.quit() #after the loop is finished, quit pygame
Это создает пустое окно и закрывает его, когда вы нажимаете кнопку X.
Далее нужно рисовать на экране
while running:
screen.fill(black) #clear the screen
pygame.draw.rect(screen,red,(100,100,100,100)) #draw a red rectangle at (100,100) that is 100x100
pygame.display.update() #update the screen, exact same as using flip()
теперь, когда у нас есть красный прямоугольник на экране, давайте изменим его размер, мы сделаем переменные для размера, как вы делали в l oop
size = 100
dsize = -1
...
while running:
...
pygame.draw.rect(screen,red,(100,100,size,size)) #draw a red rectangle at (100,100) that is 100x100
size += dsize #change the size
if size < 10 or size > 100: #if size is outside safe sizes
dsize *= -1 #reverse the direction
это может показаться немного быстро, но вы не можете go меньше 1, поэтому вы можете использовать часы из pygame, чтобы ограничить fps
clock = pygame.time.Clock()
...
while running:
...
clock.tick(60) #limit the fps to 60
print(clock.get_fps()) #this is not necessary, but if you change 60 to 0, you can see how fast it was going