在带有 Pygame 模块的 Python 3.8 中:
我正在尝试为我正在制作的彩色游戏制作颜色渐变。我知道如何制作一维渐变,如下所示:
但我希望能够在渐变中创建具有两种以上颜色的图像。互联网上的一个例子是这样的:(忽略花哨的文字)
如何创建一个函数以在表面上生成多种颜色的渐变?重要的是我可以选择角落的颜色,或者至少能够以我能理解的方式影响它们。
我在网上找到的一个想法是这样的:
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/