Есть такой код:
import pygame
import time
pygame.init()
gragon_size = 240
x_dragon = -240
y_dragon = 300
dragon_count = 0
screen = pygame.display.set_mode((1000, 700)) # станавливаем размеры окна
pygame.display.set_caption("Dragon") # заголовок
done = True
dragon_anim = [pygame.image.load('C:\\Users\\pikro\\PycharmProjects\\Lessons\\gragon\\0.png'),
pygame.image.load('C:\\Users\\pikro\\PycharmProjects\\Lessons\\gragon\\1.png'), pygame.image.load('C:\\Users\\pikro\\PycharmProjects\\Lessons\\gragon\\2.png'),
pygame.image.load('C:\\Users\\pikro\\PycharmProjects\\Lessons\\gragon\\3.png'), pygame.image.load('C:\\Users\\pikro\\PycharmProjects\\Lessons\\gragon\\4.png')]
clock = pygame.time.Clock()
def Dragon():
global dragon_count
global x_dragon
global y_dragon
if dragon_count == 25:
dragon_count = 0
if x_dragon >= 1000 + gragon_size:
x_dragon = -240
y_dragon = 300
time.sleep(2) # только через 2 секунды снова полетит
x_dragon += 4
y_dragon -= 1
screen.blit(dragon_anim[dragon_count // 5], (x_dragon, y_dragon))
dragon_count += 1 # увеличивае
while done:
clock.tick(30) # кадров в сек
screen.fill((255, 255, 255))
for e in pygame.event.get():
if e.type == pygame.QUIT:
done = False
keys = pygame.key.get_pressed() # получаем зажатые кнопки
if keys[pygame.K_ESCAPE]: # выходим по esc
done = False
Dragon()
pygame.display.flip()
В функции есть time.sleep, эта задержка должна не показывать дракона 2 сек., а после запускать функцию заново. Этот дракон как фоновый персонаж, просто так летает. Но если вставить этот код в основную игру, то на 2 сек. останавливается вся игра, как этого избежать?