我正在使用 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 硬件的工作原理。解释起来有点麻烦,所以这张图片可能会更清楚一点:
我查看了 Pygame 和 PIL 的手册,没有发现任何东西可以让我像这样操作调色板文件。是否有任何其他库需要研究,或者是否有我没有看到的更简单的解决方案?
最佳答案
虽然我个人没有这样做,但在 PyGame 中我相信您要搜索的调用是: http://pygame.org/docs/ref/surface.html#Surface.set_palette
关于python - 将不同的调色板索引分配给调色板图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9126141/