Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中更改动画对象的颜色_Python_Pygame - Fatal编程技术网

如何在python中更改动画对象的颜色

如何在python中更改动画对象的颜色,python,pygame,Python,Pygame,我有一个不同坐标下的雪的列表,默认颜色是白色。 我需要帮助创建一个函数来改变“雪”的颜色,每5次迭代的while循环。然后将使用映射使用此函数 尝试为每个雪创建一个函数来更改颜色,但似乎不起作用 WHITE=[255,255,255] 银=[192192192] 黄金=(255223,0) 红色=[255,0,0] 颜色列表=[白色、银色、金色、红色] 颜色=随机选择(颜色列表) 雪景列表=[] #为每个雪花指定随机坐标 对于范围(100)内的i: x=random.randrange(0600

我有一个不同坐标下的雪的列表,默认颜色是白色。 我需要帮助创建一个函数来改变“雪”的颜色,每5次迭代的while循环。然后将使用映射使用此函数

尝试为每个雪创建一个函数来更改颜色,但似乎不起作用

WHITE=[255,255,255]
银=[192192192]
黄金=(255223,0)
红色=[255,0,0]
颜色列表=[白色、银色、金色、红色]
颜色=随机选择(颜色列表)
雪景列表=[]
#为每个雪花指定随机坐标
对于范围(100)内的i:
x=random.randrange(0600)
y=random.randrange(0600)
snow\u list.append([x,y])
#变色功能
我们的雪花(雪花):
雪花。附加(颜色)
pygame.draw.circle(屏幕、颜色、雪花、2)
回归雪花
完成=错误
虽然没有这样做:
#每第7次更换一次颜色
如果计数=7:
雪花列表=列表(地图(回忆雪花,雪花列表))
计数=0
计数+=1
#展示每一场雪
对于范围内的i(len(雪地列表)):
#拉雪
pygame.draw.circle(屏幕,白色,雪地列表[i],3)

雪列表必须包含颜色和位置的元组。初始颜色为白色:

snow_list=[]
对于范围(100)内的i:
x=random.randrange(0400)
y=random.randrange(0400)
snow_list.append((白色,[x,y]))
循环5次后,随机更改每个雪花的颜色:

def reclour_雪花(雪花):
颜色=随机选择(颜色列表)
返回(颜色、雪花[1])
计数=0
完成=错误
虽然没有这样做:
# [...]
如果计数=5:
雪花列表=列表(地图(回忆雪花,雪花列表))
计数=0
计数+=1
注意,返回一个包含索引和元素的元组

使用元组列表的颜色绘制雪花:

未完成时:
# [...]
对于雪地列表中的雪:
pygame.draw.circle(屏幕,雪[0],雪[1],2)
请参见雪花落下和重新落下的完整示例:

导入pygame
随机输入
pygame.init()
大小=(400400)
screen=pygame.display.set_模式(大小)
clock=pygame.time.clock()
黑色=[0,0,0]
白色=[255,255,255]
银=[192192192]
黄金=[255,223,0]
红色=[255,0,0]
颜色列表=[白色、银色、金色、红色]
颜色=随机选择(颜色列表)
雪景列表=[]
对于范围(100)内的i:
x=random.randrange(0400)
y=random.randrange(0400)
snow_list.append((白色,[x,y]))
我们的雪花(雪花):
颜色=随机选择(颜色列表)
返回(颜色、雪花[1])
def设置雪花动画(雪花):
x、 y=雪花[1]
y+=随机随机随机范围(1,3)
如果y>400:
x、 y=(random.randrange(0400),random.randrange(-50,-10))
返回(雪花[0],[x,y])
计数=0
完成=错误
虽然没有这样做:
#处理事件
对于pygame.event.get()中的事件:
如果event.type==pygame.QUIT:
完成=正确
#改变雪花的颜色
如果计数=5:
雪花列表=列表(地图(回忆雪花,雪花列表))
计数=0
计数+=1
#处理列表中的每个雪花
雪花列表=列表(贴图(为雪花、雪花列表制作动画))
#设置屏幕背景
屏幕填充(黑色)
#画雪花
对于雪地列表中的雪:
pygame.draw.circle(屏幕,*snow,2)
#继续,用我们绘制的内容更新屏幕。
pygame.display.flip()
时钟滴答(20)

谢谢,我们可以用地图吗?类似于snow_list=list(map(recolour_snowflake,snow_list))的东西我曾尝试在第五次迭代循环中使用,但我无法让它工作是的,类似这样的东西。这样,每一片雪花的变色功能就会一次生效