〜中級編〜(中級的な関数の使い方)
51. 画像を回転、拡大縮小描写する。
画像の回転と拡大、描写を同時に扱える関数がDrawRotaGraphです。仕様詳細についてはこちらをご覧ください。
DrawRotaGraph( X座標 , Y座標 , 拡大率 , 回転角度 , 画像ハンドル , 透過フラグ
, 反転表示フラグ);
拡大率は1.0で等倍です。回転角度はラジアンで指定します。0度は0ラジアン、180度は3.14ラジアン、つまりπです。
360度は3.14*2ラジアンであり、0と同じです。3.14*2ラジアンと0ラジアンは同じですから、
360度ごとに最初に戻ります。つまりラジアンは増やしっぱなしでもくるくる回ってくれます。円周率は最初に
#define PI 3.1415926
このように定義しておきましょう。
初めて出てきた「反転表示フラグ」は画像を左右反転させて表示するかどうかのフラグでTRUEにすると反転、
FALSEにすると、反転せず普通に描画します。
#include "DxLib.h" #define PI 3.1415926 int image[16],count=0; char Key[256]; int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){ if( ChangeWindowMode(TRUE) != DX_CHANGESCREEN_OK || DxLib_Init() == -1 ) return -1; SetDrawScreen( DX_SCREEN_BACK ); LoadDivGraph( "char.png" , 16 , 4 , 4 , 32 , 32 , image ) ; while(!ProcessMessage() && !ClearDrawScreen() && !GetHitKeyStateAll( Key ) && Key[KEY_INPUT_ESCAPE]==0){ DrawRotaGraph( 320 , 240 , (double)count*0.01 , PI*((double)count*0.001) , image[0] , TRUE ) ; count++; ScreenFlip(); } DxLib_End(); return 0; }
- Remical Soft -