ページ 11

拡大縮小用描画関数

Posted: 2010年4月16日(金) 10:00
by トト
拡大縮小用描画関数の描画関数を作っております。

オブジェクトが消える用に使う予定でオブジェクトの中心を原点として拡大縮小するようにしたいのですが
縮小をしてしまうと右上?に消えてしまいます。
中心にするということは出来ないのでしょうか?
//元画像
■■■
■■■
■■■

//現在の処理
■□□
□□□
□□□

//こんな感じにしたいです
□□□
□■□
□□□

わかりにくくてすみません。

void DrawAlphaScale(int x,int y,int GrHandle,int Alpha,float Sx,float Sy){

    //  透明度
    int Air = Alpha;
    if(Air <= 0) Air = 0;
    else if(Air >= 255) Air = 255;

    // 読みこんだグラフィックのサイズを得る
    int SizeX,SizeY;
    GetGraphSize( GrHandle , &SizeX , &SizeY );

    // 描画ブレンドモードをαブレンドにする
    SetDrawBlendMode(DX_BLENDMODE_ALPHA,Air);
    // グラフィックの描画
    DrawExtendGraph( x-SizeX/2 , y-SizeY/2 , x + int(SizeX*Sx)-SizeX/2 , y + int(SizeY*Sy)-SizeY/2 , GrHandle , TRUE ) ;
    // 描画ブレンドモードをノーブレンドにする
    SetDrawBlendMode( DX_BLENDMODE_NOBLEND , 0 );
}

Re:拡大縮小用描画関数

Posted: 2010年4月16日(金) 10:13
by Dixq (管理人)
RotaGraphじゃだめなんでしょうか?

Re:拡大縮小用描画関数

Posted: 2010年4月16日(金) 10:22
by Ma
DrawExtendGraph( x-SizeX/2 , y-SizeY/2 , x + int(SizeX*Sx)-SizeX/2 , y + int(SizeY*Sy)-SizeY/2 , GrHandle , TRUE ) ;

DrawExtendGraph( x-int(SizeX*Sx)/2 , y-int(SizeY*Sx)/2 , x + int(SizeX*Sx)/2 , y + int(SizeY*Sx)/2 , GrHandle , TRUE ) ;

Re:拡大縮小用描画関数

Posted: 2010年4月16日(金) 11:05
by トト
Dixq (管理人)様
横だけや縦だけの縮小をする可能性があるので個々に設定したいです><

Ma様
ありがとうございます!!出来ました~。