我正在使用Python和Pygame编写游戏。因此,图像的风格将类似于NES等旧视频游戏控制台。图形由一个包含2位(4色)图像的单个tileset文件组成,并且我想能够在加载它们时将任意4色调色板分配给这些图像。
我的目标是使用8位(256色)调色板模式,其中我将调色板分为64个4种颜色的子调色板。每次从2位图形文件中加载16x16 tile时,我都想将这些虚拟的4色调色板中的一个分配给它。因此,在原始tile set文件中,调色板索引将为0-3,因为它是2位索引文件。我想将文件中的tiles加载到内存中,并使用函数将调色板索引从0-3重新分配到我选择的任何调色板偏移量,以便在将其blit到屏幕上时,它着色为我选择的4色调色板--就像NES硬件的工作方式一样。这有点棘手,所以也许这张图片会更清晰地解释这个过程:
https://istack.dev59.com/L5wh9.webp 我已经查阅了Pygame和PIL的手册,但没有找到任何可以像这样操作调色板文件的内容。是否有其他库可供参考,或者我没有看到的更简单的解决方案?
我的目标是使用8位(256色)调色板模式,其中我将调色板分为64个4种颜色的子调色板。每次从2位图形文件中加载16x16 tile时,我都想将这些虚拟的4色调色板中的一个分配给它。因此,在原始tile set文件中,调色板索引将为0-3,因为它是2位索引文件。我想将文件中的tiles加载到内存中,并使用函数将调色板索引从0-3重新分配到我选择的任何调色板偏移量,以便在将其blit到屏幕上时,它着色为我选择的4色调色板--就像NES硬件的工作方式一样。这有点棘手,所以也许这张图片会更清晰地解释这个过程:
https://istack.dev59.com/L5wh9.webp 我已经查阅了Pygame和PIL的手册,但没有找到任何可以像这样操作调色板文件的内容。是否有其他库可供参考,或者我没有看到的更简单的解决方案?