首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >显示的图像不固定(以秒为单位更改)- PyGame

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

Stack Overflow用户
提问于 2018-05-28 00:15:25
回答 1查看 40关注 0票数 0

交通*是存储交通图像的变量。

代码语言:javascript
运行
复制
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,它在屏幕上显示流量的图像。

代码语言:javascript
运行
复制
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

Github链接:https://github.com/siddhantsar/Road-Racer-PyGame

游戏玩法:https://giphy.com/gifs/2sh4xKQNroQCQOcRZI

EN

回答 1

Stack Overflow用户

发布于 2018-05-28 00:54:17

你在呼叫random.randint inside traffic。每次您调用它时,它都会为您生成一个新的随机整数,从而在您每次调用流量时选择一个随机图像来显示。

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

代码语言:javascript
运行
复制
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 ...
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50554102

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档