我正在用python编写一个random walker程序,并使用Pygame进行图形处理
程序运行良好,但是我希望在代码末尾的每一个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秒,然后继续运行
尝试在for循环中插入update和sleep,以便每次迭代后显示都会更新:
time.sleep(1)需要与pygame.display.update()交换位置
代码: 导入pygame 随机输入 导入时间
初始化pygame
pygame.init()
创建屏幕
screen=pygame.display.set_模式((800800))#宽度和高度
startX=400 星度=400
def returnRandomNumber(): 选项=[1,-1]
def returnRandomInt(): random_sample=random.randint(0255)
运行=真 运行时: #更新显示 时间。睡眠(1)
相关问题 更多 >
编程相关推荐