python-3.x - Pygame 中更复杂的颜色渐变

标签 python-3.x colors pygame gradient

在带有 Pygame 模块的 Python 3.8 中:

我正在尝试为我正在制作的彩色游戏制作颜色渐变。我知道如何制作一维渐变,如下所示:

enter image description here

但我希望能够在渐变中创建具有两种以上颜色的图像。互联网上的一个例子是这样的:(忽略花哨的文字)

enter image description here

如何创建一个函数以在表面上生成多种颜色的渐变?重要的是我可以选择角落的颜色,或者至少能够以我能理解的方式影响它们。

我在网上找到的一个想法是这样的:

for i in range(900):
   for j in range(900):
      surface.set_at((i,j),(i/4,j/4,i/4))

我的问题是很难选择它生成的颜色。我无法拼凑如何使颜色相互融合,尤其是在使用多种颜色的情况下。

最佳答案

没有魔法。
Pygame 没有用于渐变的 API,尽管您还没有发布
你的代码,你可能做了插值就好了。

所以,对于“二维方形渐变”,你必须继续打破你的
小部分的问题,直到你得到你想要的 -
为此,它可能是:在 y == 0 处在您感兴趣的区域顶部运行一个渐变,在您的区域底部以 y = 高度运行另一个渐变,并且对于每一列,您插入一个新渐变,从
顶部渐变的颜色并运行到底部渐变的颜色。

唯一的坏消息是这在 pygame 中会非常慢 - 但您可以绘制一次并保存生成的图像,然后在游戏时加载它。

还有其他适合绘制线性渐变的库和框架,
并快速完成,就像 Cairo、gegl 和 opengl 本身一样 - 但这些都没有现成的方法将一个完整的渐变过渡到另一个。

[继续……]

关于python-3.x - Pygame 中更复杂的颜色渐变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61467934/

相关文章:

python-3.x - 如何在 Python 3.4 中获取字母表中的字符位置?

python - __getattribute__ 如何获取值?

jquery - 每个元素的动画

python - 使用 (py)OpenGL 处理纹理和图像

python - 如何检查包含 Sprite 的组是否为空

python - 无法在 vim 中启用 python3 支持

r - 使用 pip 为 Python 3 安装 rpy2

css - 复制 5 色 CSS 渐变

ios - 是否可以在iOS中基于RGB值获得颜色名称?

python - Pygame 似乎崩溃了,没有错误消息