ちょっと遅かったですか・・・
一応手段は用意してみました。
こちらの最新版で
http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTestDX9.zip
http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTestDX9.zip
(中身を既存のライブラリのファイルに上書きして、BCCをお使いの
場合は『再構築』、VCをお使いの場合は『リビルド』をして下さい)
文字の色をグラデーションさせるのはこんな感じのプログラムになります。
#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{
int FontHandle, ImageHandle, EdgeImageHandle, DrawWidth ;
int SoftImage, EdgeSoftImage ;
VERTEX Vertex[ 6 ] ;
ChangeWindowMode( TRUE ) ;
// DXライブラリの初期化
if( DxLib_Init() < 0 )
{
// エラーが発生したら直ちに終了
return -1 ;
}
// 縁つきアンチエイリアスフォントの作成
FontHandle = CreateFontToHandle( NULL, 24, -1, DX_FONTTYPE_ANTIALIASING_EDGE ) ;
// 文字列イメージを転送する ARGB8形式の画面サイズのメモリイメージを作成( 縁用と二つ )
SoftImage = MakeARGB8ColorSoftImage( 640, 480 ) ;
EdgeSoftImage = MakeARGB8ColorSoftImage( 640, 480 ) ;
// 作成したメモリイメージを0で塗りつぶす
FillSoftImage( SoftImage, 0, 0, 0, 0 ) ;
FillSoftImage( EdgeSoftImage, 0, 0, 0, 0 ) ;
// 文字列イメージをメモリイメージに書き込む
BltStringSoftImageToHandle(
0, 0, "グラデーションテスト",
SoftImage, EdgeSoftImage,
FontHandle, FALSE ) ;
// 描画幅を取得する
DrawWidth = GetDrawStringWidthToHandle( "グラデーションテスト", lstrlen( "グラデーションテスト" ), FontHandle ) ;
// 描画幅と描画高さのグラフィックハンドルを作成する
ImageHandle = CreateGraphFromRectSoftImage( SoftImage, 0, 0, DrawWidth, 26 ) ;
EdgeImageHandle = CreateGraphFromRectSoftImage( EdgeSoftImage, 0, 0, DrawWidth, 26 ) ;
// 縁の部分は緑色で描画
SetDrawBright( 0, 255, 0 ) ;
DrawGraph( 0, 0, EdgeImageHandle, TRUE ) ;
SetDrawBright( 255, 255, 255 ) ;
// 本体部分は DrawPolygon を使用して上下に赤から青にグラデーションさせながら描画
Vertex[ 0 ].x = 0.0f - 0.5f ; Vertex[ 0 ].y = 0.0f - 0.5f ;
Vertex[ 1 ].x = DrawWidth - 0.5f ; Vertex[ 1 ].y = 0.0f - 0.5f ;
Vertex[ 2 ].x = 0.0f - 0.5f ; Vertex[ 2 ].y = 26.0f - 0.5f ;
Vertex[ 3 ].x = DrawWidth - 0.5f ; Vertex[ 3 ].y = 26.0f - 0.5f ;
Vertex[ 0 ].u = 0.0f ; Vertex[ 0 ].v = 0.0f ;
Vertex[ 1 ].u = 1.0f ; Vertex[ 1 ].v = 0.0f ;
Vertex[ 2 ].u = 0.0f ; Vertex[ 2 ].v = 1.0f ;
Vertex[ 3 ].u = 1.0f ; Vertex[ 3 ].v = 1.0f ;
Vertex[ 0 ].b = 0 ; Vertex[ 0 ].g = 0 ; Vertex[ 0 ].r = 255 ; Vertex[ 0 ].a = 255 ;
Vertex[ 1 ].b = 0 ; Vertex[ 1 ].g = 0 ; Vertex[ 1 ].r = 255 ; Vertex[ 1 ].a = 255 ;
Vertex[ 2 ].b = 255 ; Vertex[ 2 ].g = 0 ; Vertex[ 2 ].r = 0 ; Vertex[ 2 ].a = 255 ;
Vertex[ 3 ].b = 255 ; Vertex[ 3 ].g = 0 ; Vertex[ 3 ].r = 0 ; Vertex[ 3 ].a = 255 ;
Vertex[ 4 ] = Vertex[ 2 ] ;
Vertex[ 5 ] = Vertex[ 1 ] ;
DrawPolygon( Vertex, 2, ImageHandle, TRUE, TRUE ) ;
// キー入力待ち
WaitKey() ;
// DXライブラリの後始末
DxLib_End() ;
// ソフトの終了
return 0 ;
}
SoftImage に文字列イメージを転送して、それをグラフィックハンドル化したあと
DrawPolygon でポリゴンとして描画、その際に各頂点の色の値を4隅で変える事で
グラデーションを・・・といった感じです。
もしこちらをお試しになってみて、且つ不明な点がございましたらお訊ね下さい。