我正在用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