本当にありがとうございました。
元のはもっと複雑のようですが、あんまりこだわらなくてもいいかなーと思ったので、今はとりあえずこんな感じで満足してます。
まあもうちょっとカッコよくしたいんですが。(^_^;)
SetDrawValidAlphaChannelGraphCreateFlag関数とMakeScreen関数は本家のリファレンスに載ってないそうです。
納得いかぬ。
#include "DxLib.h"
void wait_fanc()
{
int term;
static int t=0;
term = GetNowCount()-t;
if(16-term>0)
Sleep(16-term);
t=GetNowCount();
return;
}
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow )
{
// ウインドウモードに変更
ChangeWindowMode( TRUE ) ;
if( DxLib_Init() == -1 ) // DXライブラリ初期化処理
{
return -1; // エラーが起きたら直ちに終了
}
int time=0;
int Cr = GetColor( 100 , 100 , 0 ) ; // 色の値を取得
int Font = CreateFontToHandle( NULL , 20 , 3 ,DX_FONTTYPE_ANTIALIASING_EDGE) ;
SetDrawValidAlphaChannelGraphCreateFlag(TRUE); // 描画可能なαチャンネル付き画像を作成するかどうかのフラグをセットする
int img=MakeScreen(250,30); //200*100の空画像を作る
SetDrawScreen(img); //画面ではなく、imgがハンドルを持つ画像に描画
DrawStringToHandle( 0 , 0 , "「DXライブラリ」" , GetColor( 255 , 255,255 ), Font ,GetColor( 0,0,0 )) ;
SetDrawScreen(DX_SCREEN_BACK);
while(time200+i*20) continue;
int pal=(time-100-i*20)*255.0/80;
if(pal>255) pal=255;
SetDrawBlendMode( DX_BLENDMODE_ALPHA, pal ) ;
double size=5.0-4.0*(time-100-i*20)/80;
if(size<1)size=1;
DrawRotaGraph( 320 , 240 ,size,0,img, TRUE ) ;
}
SetDrawBlendMode( DX_BLENDMODE_NOBLEND, 0 ) ;
ScreenFlip();
wait_fanc();
time++;
}
WaitKey() ; // キーの入力待ち(『WaitKey』を使用)
DxLib_End() ; // DXライブラリ使用の終了処理
return 0 ; // ソフトの終了
}