Задержек быть не должно. Чтобы выполнять некоторый код с какой-то периодичностью, надо
генерировать события с этой периодичностью и обрабатывать их:
import pygame
screen = pygame.display.set_mode((300, 200))
clock = pygame.time.Clock()
pygame.display.set_caption('Timer demo')
MOVE_DOWN_DELAY = 500
MOVE_DOWN_EVENT = pygame.USEREVENT + 1
pygame.time.set_timer(MOVE_DOWN_EVENT, MOVE_DOWN_DELAY)
dot = pygame.Rect(150, 10, 10, 10)
while True:
clock.tick(50)
if pygame.event.get(pygame.QUIT): break
for e in pygame.event.get():
if e.type == MOVE_DOWN_EVENT:
dot.move_ip(0, 10)
screen.fill((0, 0, 0))
pygame.draw.rect(screen, (150, 150, 150), dot)
pygame.display.flip()