我正在编写一个程序,该程序应该在屏幕上的任意位置以随机颜色绘制随机数的正方形。我试图使这种情况发生,但是它没有用(相反,只是画一个正方形并将其放置在每帧的新位置)。
我决定放弃随机数平方的想法,而只画了三个。但是它仍然做同样的事情。根据我读过的网站,您应该可以使用For循环将它们绘制一定次数。但是,这些网站不是很清楚,使用的是我以前从未听说过的术语。我以为这样做会更容易,但是我是编程新手,所以我可能做错了事。
population = 0
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
pcol = (random.choice(colour_list))
px = random.randint(50, 750)
py = random.randint(50, 750)
screen.fill(GREY)
for population in range(0, 3):
pygame.draw.rect(screen, pcol, (px, py, 50, 50))
population += 1
pygame.display.update()
答案 0 :(得分:2)
您必须在px
循环中生成不同的随机位置(py
,pcol
)和颜色(for
),因此每个矩形都具有自己的随机性位置和颜色:
screen.fill(GREY)
for _ in range(0, 3):
pcol = (random.choice(colour_list))
px = random.randint(50, 750)
py = random.randint(50, 750)
pygame.draw.rect(screen, pcol, (px, py, 50, 50))
pygame.display.update()
如果要保持随机矩形的持久性,则必须在主循环之前生成数据列表:
population = []
for _ in range(0, 3):
pcol = (random.choice(colour_list))
px = random.randint(50, 750)
py = random.randint(50, 750)
population.append((px, py, pcol))
while running:
# [...]
screen.fill(GREY)
for px, py, pcol in population:
pygame.draw.rect(screen, pcol, (px, py, 50, 50))
pygame.display.update()
答案 1 :(得分:0)
这个(https://stackoverflow.com/a/57209221/11714229)答案是正确的。此外,可以通过如下所示的for循环来绘制随机数的正方形:
for population in range(0, randint([Min number of squares], [Max number of squares]):
//示例:
for population in range(0, randint(1,15):
//code here
输出将在1到15平方之间。