交通*是存储交通图像的变量。
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以正确理解。
完整代码:http://txt.do/dp5c6
发布于 2018-05-28 00:54:17
你在呼叫random.randint inside traffic。每次您调用它时,它都会为您生成一个新的随机整数,从而在您每次调用流量时选择一个随机图像来显示。
要解决此问题,请提前随机选择您的图像(例如,当您将汽车重置到屏幕顶部时),并将其保存在变量中。然后将该变量传递给流量。
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 ...https://stackoverflow.com/questions/50554102
复制相似问题