関数群名
SACT2
機能
裏表2枚のスプライトのCGのみをY軸を中心に(f)度鳥かご回転させ、
その結果を別のスプライトにコピーします
定義
void CG_COPY_ROTATE_Y(int nWrite, int nDest, int nSrc,
int nSx, int nSy, int nWidth, int nHeight, float fRotate, float fMag)
引数
nWrite
コピー先SP
nDest
表のSP(このCGが表示される角度は0~89と、271~360)
nSrc
裏のSP(このCGが表示される角度は91~269)
nSx,nSy
表裏のコピー開始位置(縦,横)
nWidth,nHeight
コピーのXサイズ,Yサイズ
fRotate
傾ける角度
fMag
倍率
戻り値
なし
解説
SACT2 CG加工
実際にサンプルをコピペして実行してみると
わかりやすいかも。
ちなみにもしWrite / Dest / Src のサイズが違ったら?
Dest srcのX値が異なる場合、何も表示されない
Dest srcのY値が異なる場合、何も表示されない
dest srcのX値が共に1/2である場合、右半分が表示されない
dest srcのY値が共に1/2である場合、下半分が表示されない
Write のX値が2倍である場合、右半分が表示されない
Write のY値が2倍である場合、下半分が表示されない
と大体こんな感じになります。
WriteのXYサイズを1.5倍にして360度回転させると、
ちょっと面白い動きに。
サンプル
void game_main(void)
{
int Xs = 128;int Ys = 128;
int α = 255;int loop = 1;
//----------------- c o l o r -------------
SP_CREATE(1, Xs, Ys, 000, 000, 000, α);
SP_CREATE(2, Xs, Ys, 255, 000, 000, α,false);
SP_CREATE(3, Xs, Ys, 000, 255, 000, α,false);
SP_SET_POS(1,Xs,Ys); SACT_UPDATE;
for(;; ++loop)
{
CG_COPY_ROTATE_Y(1,2,3, 0, 0, Xs, Ys, loop, 1);
CG_COPY_ROTATE_Y_USE_AMAP(1,2,3, 0, 0, Xs, Ys, loop, 1);
W(10);
}
}
サンプル使用CG
待ち
サンプル出力例
待ち
定義位置
System\SACT\DrawGraph.jaf
関連
CG_COPY_ROTATE_Y_USE_AMAP
CG_COPY_ROTATE_Y_FIX_L?
CG_COPY_ROTATE_Y_FIX_R?
CG_COPY_ROTATE_X
CG_COPY_ROTATE_X_USE_AMAP