Python 显示的图像不是固定的(以秒为单位更改)-PyGame

Python 显示的图像不是固定的(以秒为单位更改)-PyGame,python,pygame,Python,Pygame,流量*是存储流量图像的变量 traffic1 = pygame.image.load("traffic-1.png") traffic2 = pygame.image.load("traffic-2.png") traffic3 = pygame.image.load("traffic-3.png") traffic4 = pygame.image.load("traffic-4.png") traffic5 = pygame.image.load("traffic-5.png") def t

流量*是存储流量图像的变量

traffic1 = pygame.image.load("traffic-1.png")
traffic2 = pygame.image.load("traffic-2.png")
traffic3 = pygame.image.load("traffic-3.png")
traffic4 = pygame.image.load("traffic-4.png")
traffic5 = pygame.image.load("traffic-5.png")
def traffic使用两个参数x和y表示像素,并在屏幕上显示流量图像

def traffic(traffic_x, traffic_y):
    traffic_list = [traffic1, traffic2, traffic3, traffic4, traffic5]
    gameDisplay.blit(traffic_list[random.randint(0, 4)], (traffic_x, traffic_y))
问题:当函数执行时,它会随机显示所有流量的图像,即一次遍历完整列表。 我希望每个显示器显示一张图像,交通图像以随机顺序显示。 签出游戏gif以正确理解

完整代码:

Github链接:

游戏性:
您正在呼叫random.randint内部通信。每次您调用它时,它都会为您生成一个新的随机整数,从而在每次调用流量时选择一个随机图像来显示

要解决此问题,请提前随机选择图像(例如,当您将汽车重置到屏幕顶部时),并将其保存在变量中。然后将该变量传递给流量

def traffic(traffic_x, traffic_y, traffic_image):
    gameDisplay.blit(traffic_image, (traffic_x, traffic_y))

# ...

traffic_list = [traffic1, traffic2, traffic3, traffic4, traffic5]

# ...

car_image = traffic_list[random.randint(0, 4)]

# ... call traffic(x, y, car_image) multiple times ...