SP_COPY

Last-modified: 2008-05-03 (土) 23:26:32

関数群名

SACT2

機能

スプライトのCGを別のスプライトへコピーします。

定義

void SP_COPY(int nSP1, int nSP2, int bCopyState=false)
実装
// スプライトをコピー
// nSP1へnSP2のCGがコピーされる
// nSP1のサイズはnSP2のサイズに変更される
// bCopyState=falseの場合、サイズ以外の情報(表示位置など)は変更されない
// bCopyState=trueの場合、表示位置などの状態もすべてコピーされる
void SP_COPY(int nSP1/*dst*/, int nSP2/*src*/, int bCopyState=false)
{
	int w = SACT.SP_GetWidth(nSP2);
	int h = SACT.SP_GetHeight(nSP2);
	SP_CREATE(nSP1, w, h, 0, 0, 0, 0);
	CG_COPY(nSP1, 0, 0, nSP2, 0, 0, w, h);
	CG_COPY_AMAP(nSP1, 0, 0, nSP2, 0, 0, w, h);
	SP_TEXT_COPY(nSP1, nSP2);
	if(bCopyState)
	{
		int	nX, nY, nZ,
			bShow, nBlendRate, nDrawMethod,
			nTextHomeX, nTextHomeY, nTextLineSpace,
			nTextX, nTextY;
		SP_GET_POS(nSP2, nX, nY);
		nZ				= SP_GET_Z(nSP2);
		bShow			= SP_GET_SHOW(nSP2);
		nBlendRate		= SP_GET_BLEND_RATE(nSP2);
		nDrawMethod		= SP_GET_DRAW_METHOD(nSP2);
		SP_GET_TEXT_HOME(nSP2, nTextHomeX, nTextHomeY);
		SP_GET_TEXT_POS(nSP2, nTextX, nTextY);
		nTextLineSpace	= SP_GET_TEXT_LINE_SPACE(nSP2);
		SP_SET_POS(nSP1, nX, nY);
		SP_SET_Z(nSP1, nZ);
		SP_SET_SHOW(nSP1, bShow);
		SP_SET_BLEND_RATE(nSP1, nBlendRate);
		SP_SET_DRAW_METHOD(nSP1, nDrawMethod);
		SP_SET_TEXT_HOME(nSP1, nTextHomeX, nTextHomeY);
		SP_SET_TEXT_LINE_SPACE(nSP1, nTextLineSpace);
		SP_SET_TEXT_POS(nSP1, nTextX, nTextY);
	}
}

引数

nSP1
 コピー先SP
nSP2 
 コピー元SP
bCopyState
 bCopyState=falseの場合、サイズ以外の情報(表示位置など)は変更されない
 bCopyState=trueの場合、表示位置などの状態もすべてコピーされる

戻り値

なし

解説

 スプライトをコピーする関数です。
 bCopysTATEがFALSEの場合、コピーするものは
 CG_COPY?CG_COPY_AMAP?SP_TEXT_COPY?となります。

サンプル

なし

サンプル使用CG

 なし

サンプル出力例

 なし

定義位置

System\SACT\SPRITE\sact_sp_func.jaf

関連

CG_COPY?