【发布时间】:2020-06-12 02:29:33
【问题描述】:
信息:我正在使用 pygame 绘制一个矩形,但希望在矩形上添加一个渐变,以便看起来有阴影。
现在这是我的代码:
light_green = (0, 255, 0)
dark_green = (0, 100, 0)
pygame.draw.rect(screen, light_green, rect_dims) # Draws a rectangle without a gradient
问题:我想在浅绿色和深绿色之间创建一个线性过渡,而不是绘制一堆堆叠在一起的线(因为那很慢),所以有没有一种方法可以让我使用 pygame 做到这一点?
【问题讨论】:
-
Here's how to do it 使用 PIL 模块(如果没有别的,您可以使用它来生成图像文件并使用它),您可能能够适应 pygame.还有一个更通用的方法来描述另一个 answer of mine 中涉及的数学。
-
您也可以定义一个小位图,然后使用
smoothscale将其拉伸到一定大小。这将创建一个渐变。 -
你能举个例子吗?
-
@Kingsley:这是一个很好的建议!我过去曾使用过一种非常相似的技术(在 C++ 中),它具有一个能够缩放和转换图像文件的库(就像我相信 pygame 可以做到的那样)。
-
Leon:
smoothscale是 documented 并且在 pygame documentation 中有使用它的示例。
标签: python pygame gradient linear-gradients rect