トップページ > 過去ログ > 記事閲覧
文字を回転描画させる機能
名前:TNT 日時: 2009/04/13 14:43

こんにちは。 只今ゲームを開発してまして、文字を任意の角度に回転させる必要(厳密には±90度)が出てしまったのですが、 そういった機能の追加って難しいでしょうか? DxLib.hを見たところではDrawVStringしか見あたらず、困っています。 もし他に見落としていたのならすみません。 ご教示のほど、よろしくお願いします。

Page: 1 |

Re: 文字を回転描画させる機能 ( No.1 )
名前:M 日時:2009/04/14 08:56

DXライブラリにあるGetDrawScreenGraph関数で、一度表示した文字をキャプチャして、 その後、DrawRotaGraph関数を使って回転表示させるのが一番簡単かと思います。 詳しいやり方は、それぞれリファレンスを参照してください。 MakeGraph //画像ハンドル作成 ↓ GetDrawScreenGraph //画面よりハンドルへグラフキャプチャ ↓ DrawRotaGraph //回転表示 の3ステップになると思います。
Re: 文字を回転描画させる機能 ( No.2 )
名前:TNT 日時:2009/04/14 12:19

ご回答ありがとうございます。 ですがGetDrawScreenGraphではアルファチャンネルが利用できないので(=アンチエイリアスがかからない) 実際にはちょっと使いづらい方法です。
Re: 文字を回転描画させる機能 ( No.3 )
名前:M 日時:2009/04/16 11:29

候補です。 #include "DxLib.h" #define PI 3.141592 int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){ ChangeWindowMode(TRUE);//ウィンドウモード if(DxLib_Init() == -1 || SetDrawScreen( DX_SCREEN_BACK )!=0) return -1;//初期化と裏画面化 ChangeFontType(DX_FONTTYPE_ANTIALIASING); SetFontSize(20); DrawString(0,0,"aaaaa",GetColor(255,255,255));//何色でも可 SaveDrawScreen( 0, 0, 200, 20, "tempGraph.bmp"); //↑の字が白色でないなら、コメントを解除 //ClearDrawScreen(); //DrawString(0,0,"aaaaa",GetColor(255,255,255)); SaveDrawScreen( 0, 0, 200, 20, "tempGraph_a.bmp");//黒の部分が透明になり、白い部分が不透明になる。 int image = LoadGraph("tempGraph.bmp"); for(int angle = 0; angle <= 360; angle += 2){ DrawBox(0,0,640,480,GetColor(100,100,200),TRUE); DrawRotaGraph( 100, 100, 1, angle*PI/180, image , TRUE , FALSE ) ; ScreenFlip(); ClearDrawScreen(); ProcessMessage(); } WaitKey(); DxLib_End(); return 0; }
Re: 文字を回転描画させる機能 ( No.4 )
名前:TNT 日時:2009/04/18 17:26

ありがとうございます。 なるほど、アルファチャンネルを出力してしまうなんていう手があったのですね。 思いつきませんでした。使わせていただきます。

Page: 1 |