CG_COPY_ROTATE_Y

Last-modified: 2007-04-15 (日) 09:12:53

関数群名

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