pyxelのカラーパレット変更は「colors.from_list」を使用する以外にパレットファイルを読み込む方法があります。
リソースファイル(.pyxres)の読み込み時に、同じフォルダにリソースファイルと同名のパレットファイル(.pyxpal)が存在する場合、そのパレットファイルを読み込んでパレットの設定色が変更されます。
例:
リソースファイルが
a.pyxres
の場合、パレットファイルは
a.pyxpal
になります。
パレットファイルは改行区切りの16進数で書かれたカラーコード(0~ffffff)が色数分書かれたファイルです。
例:pyxelのデフォルトのカラーパレット
↓ここから----------------------------
0
2b335f
7e2072
19959c
8b4852
395c98
a9c1ff
eeeeee
d4186c
d38441
e9c35b
70c6a9
7696de
a3a3a3
ff9798
edc7b0
↑ここまで----------------------------
サンプルとして、pyxelデフォルト+セーフカラーのパレットファイル(231色)の内容をGoogleドキュメントに載せました。
パレットファイルに設定可能な色数(行数)は1~255の範囲になります。
16色未満でも設定は可能ですが、その場合はリソースエディタのパレットの一部が選択出来なくなります。
※上図は黒「0」,白「ffffff」の2色のみに設定した場合です。白の右側全てと下段のパレットは選択出来ません。
なお、パレットファイルを空ファイルにするとエラーが発生します。
※リソースエディタは起動しますが、点を書き込む等の何かを描く操作でエラーになります。
パレットファイルから読み込んだ場合、設定したパレットより後ろのパレット番号を指定するとエラーが発生します。
例:パレットファイルが30行だった場合、「pyxel.colors[50]=0xdddddd」等はインデックスエラー発生
※「colors.from_list」でパレットを追加した場合も同様です。
そのため、プログラム実行中にパレットの書き換えを行う場合は、予めパレットを254まで確保しておくとパレット数に関しては管理が不要になります。
無駄になる場合もありますが、シビアな環境でなければインデックス管理が少し楽になるかも知れません。
以上です。