Python 如何在pygame中更改/获取while循环中矩形的值

Python 如何在pygame中更改/获取while循环中矩形的值,python,python-3.x,pygame,Python,Python 3.x,Pygame,在我的游戏中,我试图使一个正在删除的矩形在三个列表中有一个随机生成的颜色,并且每次生成一个新矩形时,颜色都随机更改为列表中这三个矩形中的一个。使用我现在的代码,它在这三种颜色之间快速循环,不停地重复。我还想弄清楚如何抓取块是什么颜色,并使相同颜色的相邻块去繁殖,但我没有运气尝试编码 我尝试将颜色设置为while循环之外的变量,但它仅从列表中随机选择一次颜色,并且不会再次更改 矩形列表不够。你也需要一个颜色列表 colors=[红、绿、蓝] 颜色选择=随机。选择(颜色) player=pygame

在我的游戏中,我试图使一个正在删除的矩形在三个列表中有一个随机生成的颜色,并且每次生成一个新矩形时,颜色都随机更改为列表中这三个矩形中的一个。使用我现在的代码,它在这三种颜色之间快速循环,不停地重复。我还想弄清楚如何抓取块是什么颜色,并使相同颜色的相邻块去繁殖,但我没有运气尝试编码


我尝试将颜色设置为while循环之外的变量,但它仅从列表中随机选择一次颜色,并且不会再次更改

矩形列表不够。你也需要一个颜色列表

colors=[红、绿、蓝]
颜色选择=随机。选择(颜色)
player=pygame.Rect(x,y,宽度,高度)
复制列表=[]
颜色列表=[]
每次生成新块时,必须将当前颜色附加到颜色列表中,并且必须将当前矩形附加到块列表中。此外,还必须设置新的随机颜色。
创建执行作业的函数,并使用设置全局范围内的变量:

def newBlock():
全球播放器,版权列表,颜色列表,颜色选择
copylist.append(player.copy())
colorList.append(colorChoice)
玩家y=50
颜色选择=随机。选择(颜色)
调用
newBlock
生成新块并以其颜色绘制ech块:

运行时:
对于pygame.event.get()中的事件:
如果event.type==pygame.QUIT:
运行=错误
elif event.type==moveDownEvent:
如果player.y>=390或player.move(0,vel).collizeList(copylist)>=0:
newBlock()#168和player.move(-vel,0).collizelist(copylist)<0:
player.x-=vel
如果键[pygame.K_RIGHT]和player.x<330和player.move(vel,0).collizelist(copylist)<0:
player.x+=vel
如果键[pygame.K_DOWN]和player.y<390:
如果player.move(0,vel).collizeList(copylist)>=0:
纽布洛克()#