python - 将不同的调色板索引分配给调色板图像

标签 python pygame palette

我正在使用 Python 和 Pygame 编写游戏。为此,图形将采用 NES 等旧视频游戏机的风格。因此,图形由一个带有 2 位(4 色)图像的 tileset 文件组成,我希望能够在加载这些图像时为其分配任意 4 色调色板。

我想做的是使用 8 位(256 色)调色板模式,我将调色板分成 64 个子调色板,每个子调色板有 4 种颜色。每次我从 2 位图形文件加载一个 16x16 的图 block 时,我都想为其分配这些虚拟 4 色调色板之一。因此,在原始图 block 集文件中,调色板索引将为 0-3,因为它是一个 2 位索引文件。我想将此文件中的图 block 加载到内存中,并使用一个函数将调色板索引从 0-3 重新分配到我选择的任何调色板偏移量,这样当我将其 blit 到屏幕时,它会以我选择的 4 色着色调色板——很像 NES 硬件的工作原理。解释起来有点麻烦,所以这张图片可能会更清楚一点:

enter image description here

我查看了 Pygame 和 PIL 的手册,没有发现任何东西可以让我像这样操作调色板文件。是否有任何其他库需要研究,或者是否有我没有看到的更简单的解决方案?

最佳答案

虽然我个人没有这样做,但在 PyGame 中我相信您要搜索的调用是: http://pygame.org/docs/ref/surface.html#Surface.set_palette

关于python - 将不同的调色板索引分配给调色板图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9126141/

相关文章:

php - 转储到 JSON 文件在类/函数中无法正常工作

python - 如何将估计器的拟合参数传递给 RFECV 的拟合?

python - 如何限制 Racket 运动?

python - 如何避免在类似蠕虫的游戏中每帧复制水平面?

function - gnuplot : plot function using palette/gradient linecolor : seems uniform, 不是渐变

python - 使用Python从Grakn获取数据

Python 属性 getter 和 setter 装饰器不可调用

python - 在 pygame 中进行多个循环的更好方法是什么?

Qt StyleSheet 系统正在使 QPalette 失效;如何让他们一起工作?

libgdx - 如何创建和使用非常大的调色板纹理以在 opengl 中使用?