我正在使用嵌套的for循环使颜色在pygame中逐渐变化。我的问题是变化只发生在蓝色上。为什么????这是代码:
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)
答案 0 :(得分:0)
您可以通过在循环期间打印出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次重画才能开始影响红色,这需要相当长的时间。
问题是你实际上目标是什么样的效果。