Python 2.7 randint上的Python计时器

Python 2.7 randint上的Python计时器,python-2.7,pygame,Python 2.7,Pygame,如果我有此代码: r = randint(0, 255) g = randint(0, 255) b = randint(0, 255) screen.fill((r, g, b)) 我如何设置它,使它每隔10秒选择一个随机数?有许多不同的方法解决这个问题。) 一种非常简单、快速且肮脏的方法是在主游戏循环中暂停游戏一段时间(即设置延迟)。您可以使用PyGames功能: #import pygame and randint function from random module import p

如果我有此代码:

r = randint(0, 255)
g = randint(0, 255)
b = randint(0, 255)
screen.fill((r, g, b))

我如何设置它,使它每隔10秒选择一个随机数?

有许多不同的方法解决这个问题。)

一种非常简单、快速且肮脏的方法是在主游戏循环中暂停游戏一段时间(即设置延迟)。您可以使用PyGames功能:

#import pygame and randint function from random module
import pygame
from random import randint

pygame.init()

screen = pygame.display.set_mode((800,800)) #create screen

while True:
    #get events from the event queue
    for ev in pygame.event.get():
        if ev.type == pygame.KEYDOWN and ev.key == pygame.K_ESCAPE:
                pygame.quit()
                exit()

    #create random variables r, g and b
    r = randint(0, 255)
    g = randint(0, 255)
    b = randint(0, 255)

    #fill screen
    screen.fill((r, g, b))

    #update whole screen
    pygame.display.flip()

    #set timout for 500ms (i.e. pause game for 500ms)
    pygame.time.delay(500)
这种方法的问题是,无法在游戏暂停的时间内(例如500毫秒)获取任何事件和做一些事情

为避免此问题,您可以创建您自己的事件,该事件每隔给定的毫秒数出现在事件队列上。您可以使用创建事件:

import pygame
from random import randint

pygame.init()

#create a new event id called event_500ms
event_500ms = pygame.USEREVENT + 1

#set timer event to appear on the event queue every 500 number of milliseconds
pygame.time.set_timer(event_500ms, 500)

screen = pygame.display.set_mode((800,800))

while True:
    #get events from the event queue
    for ev in pygame.event.get():
        if ev.type == pygame.KEYDOWN and ev.key == pygame.K_ESCAPE:
                pygame.quit()
                exit()

        #check for event_500ms event
        if ev.type == event_500ms:

            r = randint(0, 255)
            g = randint(0, 255)
            b = randint(0, 255)

            screen.fill((r, g, b))

            pygame.display.flip()

我希望这能帮上忙:)

@YuBinLee:没问题,我很高兴能帮上忙:)