はじめに
以前の「ドット絵を描いて動かそう!(「TIC-80」のご紹介)」の続きのようなものです
パレット編集画面説明
パレット文字列
だいたいは使っていれば分かるかと思いますが、左下に「COPY PALETTE」と「PASTE PALETTE」があります。
例えばこの状態で「COPY PALETTE」をクリックした後、「メモ帳」などのテキストエディタで
「貼り付け」すると16進数の文字列が表示されます。
「右端で折り返す」表示のため2行になっていますが、1行の文字列です。
最初の6文字で色番号0のR(赤)G(緑)B(青)を16進数の2文字でそれぞれ表しており、以下色番号1~15も同様に並んでいます。
「TIC-80 Wiki」の「パレットのページ」には様々なパレットが公開されているので試してみるのもいいでしょう。
例えば「JAPANESE MACHINE PALETTE」というのがありますので、ブラウザ上で「pal:
」以下の文字列をコピーして
TIC-80の「PASTE PALETTE」をクリックすると以下のようになります。(ゾンビかな?)
TIC-80パレット編集ツール(Web)
また、Wikiでも紹介されていますが、
ブラウザ上でパレットを編集して、TIC-80用パレット文字列を生成してくれるツールが
公開されています。
TIC-80を2つ起動して色々コピペ
テキストエディタやブラウザを経由しなくても、「TIC-80」を2つ立ち上げて、
別ファイルを読み込めば(新規作成)、パレット情報のコピペも可能です。
また、パレット情報だけでなく、スプライトパターンのコピペも可能です。
ちなみにテキストエディタに「貼り付け」すると色番号0
~f
(15)のスプライトパターン文字列がペーストされます。
GUIでポチポチこのようなデータを生成できるのは応用も色々できそうです。
プログラムからパレット情報の変更
また、パレット情報はプログラム動作中に変更も可能で、それをカートリッジ(.tic)ファイルに反映も可能です。
パレットの色の交換の関数を作ってみました。
function swapal(c1,c2,dosync)
local ADDR=0x03FC0
local t1,t2={},{}
for i=0,2 do t1[i]=peek(ADDR+3*c1+i)end
for i=0,2 do t2[i]=peek(ADDR+3*c2+i)end
t1,t2=t2,t1
for i=0,2 do poke(ADDR+3*c1+i,t1[i])end
for i=0,2 do poke(ADDR+3*c2+i,t2[i])end
if dosync then sync(1<<5,0,true)end
end
使い方としては c1,c2にスワップしたい色番号を指定して、ticファイルにも反映させる場合には
trueを続けて指定します。
例えば、newしたサンプルプログラムなら、色番号5は緑色、13は水色ですが、
こんな感じでコピペして呼び出すと
3番目の引数にtrue
を指定したので、ticファイルにも反映されます。
「TIC-80]は基本的には16色ですが、プログラム実行中に変化させたり、SCN
命令との組み合わせで、
描画中に変更して16色以上の色を表示させたりすることもできます。
とりあえずパレットの説明はこの辺で一旦終了します。
その他、palette map とかもありますが別の機会に。
皆さんも「TIC-80」使ってみましょう!