Можно ли заставить мою программу нарисовать фигуру с помощью pygame, подождать секунду, а затем нарисовать другую?Но я все еще хочу, чтобы остальная часть программы работала - PullRequest
2 голосов
/ 13 мая 2019

Я пытаюсь сделать ритм-игру для своего финального проекта. Я использую pygame и хочу, чтобы моя программа рисовала фигуру, ждала секунду, а затем рисовала другую, в соответствии с музыкой, которую я играю. Может ли моя программа подождать секунду между рисованием каждой фигуры, но остальная часть программы все еще выполняется? (не pygame.time.delay ())

Я пробовал http://fredericiana.com/2014/11/14/settimeout-python-delay/, который либо не работал, либо мне не удалось правильно его реализовать

def spawnShapesGameOne(gameInPlay, gameInPlayOne,drawShapesOne):
    if gameInPlay == True:
        if drawShapesOne == True:
            pygame.draw.rect(surface, GREEN,(w*.23, h*.25, w*.05,w*.05))
            #Wait one second
            pygame.draw.rect(surface, GREEN,(w*.73, h*.25, w*.05,w*.05))
            #Wait one second            
            pygame.draw.rect(surface, GREEN,(w*.73, h*.65, w*.05,w*.05))
            #Wait one second            
            pygame.draw.rect(surface, GREEN,(w*.23, h*.65, w*.05,w*.05))

1 Ответ

2 голосов
/ 13 мая 2019

это просто, и вы можете сделать эту неблокирующую задержку / расписание в целом, используя модуль времени:

import time
timer1sec = 0

def draw_myshape():
    # your drawing code here
    global timer1sec 
    timer1sec = time.time()  # reset our timer

# main pygame loop
while True:
    if time.time() - timer1sec >= 1:   # if one seconds passed
        draw_myshape()

    # rest of pygame code here
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...