【发布时间】:2011-05-19 08:52:46
【问题描述】:
我有一个 pygame 表面(一些由 font.render 创建的文本),除了一些像素是白色的之外,它大部分是透明的。我想将这些白色像素的一半改成黑色。我知道我可以遍历每个像素,通过 get_at() 检查它是否为白色并使用 set_at() 更改其颜色,但令我震惊的是,必须有一种更快的方法告诉 pygame 抓取所有白色像素并更改随机将其中一半变为黑色。有什么想法吗?
【问题讨论】:
我有一个 pygame 表面(一些由 font.render 创建的文本),除了一些像素是白色的之外,它大部分是透明的。我想将这些白色像素的一半改成黑色。我知道我可以遍历每个像素,通过 get_at() 检查它是否为白色并使用 set_at() 更改其颜色,但令我震惊的是,必须有一种更快的方法告诉 pygame 抓取所有白色像素并更改随机将其中一半变为黑色。有什么想法吗?
【问题讨论】:
我认为您需要遍历所有像素以检查它们是否为白色。获得白人列表后,请执行以下操作:
for px in random.sample(whites,len(whites)/2):
Surface.set_at((px.x,px.y),'black')
【讨论】: