我正在用Python和Pygame编写游戏。为此,图形将采用NES等老式视频游戏机的风格。因此,这些图形由一个具有2位(4色)图像的单个tileset文件组成,我希望能够在加载这些图像时为这些图像指定一个任意的4色调色板。将不同的调色板索引分配给调色板图像
我想要做的是使用8位(256色)调色板模式,并将调色板分成64个子调色板,每个调色板分别具有4种颜色。每次我从2位图形文件中加载16x16的图块时,我都想为其分配一个虚拟4色调色板。因此,在原始瓷砖集文件中,调色板索引将为0-3,因为它是一个2位索引文件。我想从这个文件加载瓷砖到内存中,并使用一个函数重新分配调色板索引从0-3到我选择的任何调色板偏移量,这样当我将它投影到屏幕上时,它会以我选择的4色调色板 - 非常类似于NES硬件作品。这变得有点毛茸茸的解释,也许这张照片使得它更清晰一点:
我环顾四周pygame的和PIL的手册,并没有发现任何让我处理这样的调色板文件。是否还有其他库需要研究,或者我没有看到更简单的解决方案?
我发现我可以在Pygame中使用PixelArray.replace作为解决方法,如果我以真彩色模式运行我的游戏。这可能会起作用,但如果可以更优雅地做到这一点,我仍然想知道如何。 – egj 2012-02-03 11:33:28