Python PyGame延迟
Python PyGame delay
我有这样的功能:
def valami() :
pygame.draw.rect(screen, (0, 255, 0), (0, 0, 20, 20))
pygame.draw.rect(screen, (0, 255, 0), (100, 100, 120, 120))
pygame.draw.rect(screen, (0, 255, 0), (200, 200, 220, 220))
这是我的主要 while 循环:
while True:
valami()
我想每 5 秒将这 3 个矩形一个一个地画出来。
定义一个矩形数组和一个计数器:
rects = [(0, 0, 20, 20), (100, 100, 120, 120), (200, 200, 220, 220)]
counter = 0
在valami
中绘制依赖于counter
的矩形:
def valami() :
pygame.draw.rect(screen, (0, 255, 0), rects[counter % len(rects)])
定义用户事件见 (pygame.event
) and start a timer with an interval of 5000 milliseconds (5 seconds) before the main loop, See pygame.time.set_timer()
:
mytimerevent = pygame.USEREVENT + 1
pygame.time.set_timer(mytimerevent, 5000) # 5000 milliseconds
计时器到时递增 counter
。可以通过以 0 的间隔调用 pygame.time.set_timer()
来停止计时器:
run = True
while run:
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False
if event.type == mytimerevent: # timer event
counter += 1
if counter == 2:
pygame.time.set_timer(mytimerevent, 0) # stop timer
screen.fill(0)
valami()
pygame.display.flip()
注意,modulom (%
) 运算符计算整数除法的余数。
由于 rects[counter % len(rects)]
如果您不停止计时器,矩形将在一个循环中绘制。
我有这样的功能:
def valami() :
pygame.draw.rect(screen, (0, 255, 0), (0, 0, 20, 20))
pygame.draw.rect(screen, (0, 255, 0), (100, 100, 120, 120))
pygame.draw.rect(screen, (0, 255, 0), (200, 200, 220, 220))
这是我的主要 while 循环:
while True:
valami()
我想每 5 秒将这 3 个矩形一个一个地画出来。
定义一个矩形数组和一个计数器:
rects = [(0, 0, 20, 20), (100, 100, 120, 120), (200, 200, 220, 220)]
counter = 0
在valami
中绘制依赖于counter
的矩形:
def valami() :
pygame.draw.rect(screen, (0, 255, 0), rects[counter % len(rects)])
定义用户事件见 (pygame.event
) and start a timer with an interval of 5000 milliseconds (5 seconds) before the main loop, See pygame.time.set_timer()
:
mytimerevent = pygame.USEREVENT + 1
pygame.time.set_timer(mytimerevent, 5000) # 5000 milliseconds
计时器到时递增 counter
。可以通过以 0 的间隔调用 pygame.time.set_timer()
来停止计时器:
run = True
while run:
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False
if event.type == mytimerevent: # timer event
counter += 1
if counter == 2:
pygame.time.set_timer(mytimerevent, 0) # stop timer
screen.fill(0)
valami()
pygame.display.flip()
注意,modulom (%
) 运算符计算整数除法的余数。
由于 rects[counter % len(rects)]
如果您不停止计时器,矩形将在一个循环中绘制。