トピック
ユウリ yuuri.com

GLOADのパレット配列について

GLOADのパレット配列について、使い方がいまいちよくわかりません。うまく使うと色を置き換えることができるようなのですが、パレット配列ってどんな風に用意するのでしょうか? 一から教えてほしいです!
3そうだね
プレイ済み
返信[1]
親投稿
「色の値」が入っただけの普通の数値配列。 「色型」って言うのはなくてただの「整数型」 プチコンの「色の値」を知ってるかどうかがミソ。 DIM PAL[2] PAL[0]=#BLACK PAL[1]=RGB(0,128,0) 黒と緑の配列を用意する例ね。 どんな方法で値を作ってもいいわけね。
2そうだね
プレイ済み
返信[2]
親投稿
で、画像配列をこうすると (※例のためこうするが、1ドットずつ生成する必要は必ずしもない) DIM IMG[2] IMG[0]=0 IMG[1]=1 これでさっきのパレット配列と一緒にGLOADで読み込むと「0番目は0番の色、1番目は1番の色」ってなって、黒と緑の点が描画されるんね
1そうだね
プレイ済み
返信[3]
親投稿
画像配列はそのままでパレット配列だけ変えてみると便利さが分かるんだよね DIM PAL[2] PAL[0]=#BLACK PAL[1]=RGB(255,0,0) こうすると「絵の形」はそのままなんだけど、「さっきの例で緑の点だったところが赤い点に変わってる」 そんなわけで「画像の中の特定の色を別の色に変えたい」みたいな使い方が捗る。 ただし、残念なことに「パレット形式の画像を生成する命令はプチコンにない」ので、「お絵かきで描いて、画像配列とパレット配列に分離したい」っていうのが非常に面倒なのよね。
1そうだね
プレイ済み
返信[4]
親投稿
ユウリ yuuri.com
あまさとさん、コメントありがとうございます! パレット配列の中身は色の値で、パレット配列の番号と画像配列の中身が対応していて変換してくれるんですね! で、画像配列の中身は物理コード(16bit)になっていると。 モヤモヤしていたのがスッキリしました!ありがとうございました!
1そうだね
プレイ済み
返信[5]
親投稿
キルル2 kiruru2
蛇足になるかもしれませんが、色と物理コードの変換をするときの式を調べてみました 結果から「物理コードが2の倍数なら透明色、そうでなければ不透明」ということが分かりました また、値が大きければ白色、小さければ黒色ということも分かりました 具体的には画像の通りです もしかしたらこのDEFを使えば、パレット形式の画像を生成できるのでは?
1そうだね
プレイ済み
返信[6]
親投稿
ユウリ yuuri.com
更に疑問点が出てきました。 GSAVEするときに色変換フラグで32bitの論理色にしたあと、パレット配列で変換できるのかな? 試したら配列宣言時に大きすぎるっておこられちゃいました。
0そうだね
プレイ済み
返信[7]
親投稿
キルル2 kiruru2
32bitの論理色では、パレット配列が大きくなりすぎてしまうため、エラーが発生しますね でも、プチコンではRGB(0,0,0)とRGB(7,0,0)は同じ色だから物理コードで大丈夫ですよ 実は、プチコンの色はRGBそれぞれ255段階ではなく32段階なんです だから、2*32*32*32(最初の2は透明か否か)で65536となり、16bitで済むんですね
2そうだね
プレイ済み
返信[8]
親投稿
れい rei-nntnd
スライムをメタルスライムに変えるのが楽になるのだー
3そうだね
プレイ済み
返信[9]
親投稿
ユウリ yuuri.com
キルル2さん、コメントありがとうございます! やっぱり無理ですよね。でも、そういえばそういう話聞いたことありました!物理コード(16bit)でことたりるということですね、なるほどです!
0そうだね
プレイ済み
返信[10]
親投稿
ユウリ yuuri.com
れいさん、コメントありがとうございます! スライムベスとか! あと、バブルスライムとはぐれメタルの関係ですね!
2そうだね
プレイ済み