嵌套for循环不按我想要的方式工作
问题描述:
我使用嵌套循环使pygame中的颜色逐渐变化。我的问题是,改变只发生在蓝色。为什么????这里是代码:嵌套for循环不按我想要的方式工作
while True:
for a in range(256):
for b in range(256):
for c in range(256):
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
sys.exit()
text = basicFont.render('Hello world!', True, (a, b, c), black)
textRect = text.get_rect()
textRect.centerx = windowSurface.get_rect().centerx
textRect.centery = windowSurface.get_rect().centery
windowSurface.fill(black)
windowSurface.blit(text, textRect)
pygame.display.update()
mainClock.tick(40)
for循环仅适用于“A”
答
你可以看到在循环过程打印出来的,b和c的值会发生什么:
for a in range(256):
for b in range(256):
for c in range(256):
print(a, b, c)
这将使c(蓝色)的结果首先出现一个从0到255的变化,然后b增加到1,并且c跳回到0,然后再次增加到255,然后b变成2,并且c去再次从0到255。
我怀疑在杀死它之前,你并没有给节目时间来影响绿色。而且由于它需要65536次重新绘画甚至开始影响红色,这将需要相当长的一段时间。
问题是你实际上瞄准什么样的效果。
你可能会考虑格式化你的代码,以便人们可以阅读它。 – 2012-02-16 01:42:41
也许你混合了制表和空格。这让Python感到困惑。 – Maciek 2012-02-16 07:43:37
有什么办法可以让它正常工作? – 2012-02-16 22:53:51