「そーこ晩」用関数_色抜き

Last-modified: 2007-03-17 (土) 12:17:37

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ができる。