我在python中做了一个随机游行者程序,并使用python作为图形。
程序运行良好,但是我希望在代码末尾的每个for loop中,它应该将程序延迟1秒,所以程序在几秒钟内就完成了,但是我可以看到连续的随机游走。
因此,当我在代码末尾添加time.sleep(1)时,它反而会使程序运行得更慢,而且它不会每秒钟画一个圆圈:
import pygame
import random
import time
#Initialize the pygame
pygame.init()
#create the screen
screen = pygame.display.set_mode((800,800)) # Width and Height
startX = 400
startY = 400
def returnRandomNumber():
options = [1,-1]
random_sample = random.choice(options)
return random_sample
def returnRandomInt():
random_sample = random.randint(0,255)
return random_sample
running = True
while running:
#update display
pygame.display.update()
for x in range(10000):
pygame.draw.circle(screen, (returnRandomInt(),returnRandomInt(),returnRandomInt()), (startX, startY), 2, 2)
if startX <= 0:
startX += 1
elif startX >= 800:
startX += -1
else:
startX += returnRandomNumber()
if startY <= 0:
startY += 1
elif startY >= 800:
startY += -1
else:
startY += returnRandomNumber()
time.sleep(1)为什么会这样?或者如何使程序绘制一个圆圈,然后延迟x秒并继续运行?
发布于 2021-02-21 07:18:23
尝试在for循环中插入update并休眠,这样每次迭代之后显示都会更新:
while running:
#update display
pygame.display.update()
for x in range(10000):
pygame.draw.circle(screen, (returnRandomInt(),returnRandomInt(),returnRandomInt()), (startX, startY), 2, 2)
if startX <= 0:
startX += 1
elif startX >= 800:
startX += -1
else:
startX += returnRandomNumber()
if startY <= 0:
startY += 1
elif startY >= 800:
startY += -1
else:
startY += returnRandomNumber()
pygame.display.update()
time.sleep(1)发布于 2021-02-21 07:28:46
time.sleep (1)需要与pygame.display.update ()交换位置
代码:导入游戏导入随机导入时间
初始化游戏
pygame.init()
创建屏幕
屏幕= pygame.display.set_mode((800,800)#宽度和高度
startX = 400 startY = 400
def returnRandomNumber():options = 1,-1
random_sample = random.choice(options)
return random_sampledef returnRandomInt():random_sample = random.randint(0,255)
return random_sample运行时运行= True:# update显示time.sleep(1)
for x in range(10000):
pygame.draw.circle(screen, (returnRandomInt(), returnRandomInt(), returnRandomInt()), (startX, startY), 2, 2)
if startX <= 0:
startX += 1
elif startX >= 800:
startX += -1
else:
startX += returnRandomNumber()
if startY <= 0:
startY += 1
elif startY >= 800:
startY += -1
else:
startY += returnRandomNumber()
pygame.display.update()https://stackoverflow.com/questions/66299955
复制相似问题