COLOR SPRITE$ ----------------------------------------------------------- MSX2 以降 [ 機能 ] スプライト面の色を1行毎で指定します。 [ 書式 ] COLOR SPRITE$(<スプライト面番号>)=<カラーコード列> [ 文例 ] COLOR SPRITE(0)=STRING$(16,&HFF) [ 解説 ] <カラーコード列> 以下の値を1行毎に指定します。 bit7 32ドット左にずらして表示 1=行なう 0=行なわない bit6 重ね表示 1=行なう 0=行なわない bit5 衝突検出 1=検出しない 0=検出する bit4 未使用 bit3〜0 カラーコード 「32ドット左にずらして表示」は通常はX座標が 0〜255 で処理されますが、 この bit を ON にする事で -32〜223 とします。 左端からスプライトを少しだけ表示されるのに役立ちます。 「重ね表示」は例えばスプライト 0 を 0、スプライト 1 を 1 とした場合に スプライト 0 とスプライト 1 を重ねて表示させます。 この際、二つのスプライトが重なっている部分は色コードが OR となります。 この2つのスプライトは衝突検出の対象にはなりません。 PUT SPRITE はスプライト 0 で座標を指定する事でスプライト 1 も一緒に動作します。 また、スプライト 0 が非表示である場合はスプライト 1 も非表示となります。 ここでは2つのスプライトで説明していますが、3つ以上でも動作します。 「衝突検出」が bit ON になっている場合、その行が重なっても衝突検出の対象になりません。 「カラーコード」は SCREEN 8 の場合、以下の固定色となります。 赤(R) 緑(G) 青(B) 0 黒 0 0 0 1 暗い青 0 0 2 2 暗い赤 3 0 0 3 暗い紫 3 0 2 4 暗い緑 0 3 0 5 暗い水色 0 3 2 6 暗い黄色 3 3 0 7 灰色 3 3 2 8 肌色 7 4 2 9 青 0 0 7 10 赤 7 0 0 11 紫 7 0 7 12 緑 0 7 0 13 水色 0 7 7 14 黄色 7 7 0 15 白 7 7 7 また、SCREEN 6 では奇数番目と偶数番目で異なる色を設定できます。 bit 3・2 が奇数番目の色コード・bit 1・0 が偶数番目の色コードです。 これにより擬似的に10色の色が指定できるようになっています。 [ 参照 ] COLOR SPRITE・PUT SPRITE