void 色抜き(int nSP)
{
int newSP_1 = SP_GET_UNUSE_NUM;
int newSP_2 = SP_GET_UNUSE_NUM;
int nWidth,nHeight;
SP_GET_SIZE(nSP,nWidth,nHeight);
SP_SET_CG_FILE(newSP_1,"game_CG\\1.bmp");
SP_CREATE(newSP_2,nWidth,nHeight,0,0,0,255);
CG_BLEND(newSP_2,0,0, newSP_1,0,0,nWidth,nHeight,255);
CG_COPY_SPRITE(newSP_2,0,0, nSP,0,0,nWidth,nHeight, 128, 128, 128);
SP_COPY(nSP,newSP_2);
SP_DEL(newSP_2);SP_DEL(newSP_1);
}
思った以上に制作に時間かかった関数だよ。
やりようによっては役に立つ関数。
CG加工関数のなかに、
CG_COPY_SPRITEって関数があり、これは色抜きでコピーする関数なんだけど、
相手方にマスクデータがないと色抜いてくれない。
通常、SP_SET_CG_FILEはマスクデータを持たないので、
いちどSP_CREATEでマスクデータを生成、そこに
SP_SET_CG_FILEのCGをブレンドさせ、このマスクデータを持つCGの上に
使いたいCGを色抜きコピーする。
こうすると絵の上に色抜きされた絵を乗せたCGができる。
ここではgame_CG\\1.bmpの上に128,128,128で
色抜きされたnSPの絵を乗せたCGができる。