数字が光っているような表現
Posted: 2013年2月20日(水) 22:28
gcc用DXライブラリで、数字が光っているような表現をしたいのですが、どのようにすればいいのでしょうか?
参考の画像を見て、数字を中心にだんだん薄くなるように白で描画すれば良さそうだとわかったのですが、いい実装が思いつきません。
なにかアイデアをいただけたら幸いです。
よろしくお願いします。
参考の画像を見て、数字を中心にだんだん薄くなるように白で描画すれば良さそうだとわかったのですが、いい実装が思いつきません。
なにかアイデアをいただけたら幸いです。
よろしくお願いします。
#include "DxLib.h"
int Key[256];
int UpdateKeyStateAll(void) {
char KeyBuf[256];
int i;
if(GetHitKeyStateAll(KeyBuf))return -1;
for(i=0;i<256;i++) {
if(KeyBuf[i])Key[i]++; else Key[i]=0;
}
return 0;
}
// Twitterの推奨は1252x626
const int SCREEN_WIDTH = 1252;
const int SCREEN_HEIGHT = 626;
// 半角文字列専用
void DrawString2(int x,int y,const char* str,int color,int alpha) {
char buf[4]={0};
int pos=y;
const char* now;
//int a;
SetDrawBlendMode(DX_BLENDMODE_ALPHA,alpha);
for(now=str;*now;now++) {
buf[0]=*now;
DrawString(x-GetDrawStringWidth(buf,1)/2,pos,buf,color);
pos+=GetFontSize();
}
//SetDrawBlendMode(DX_BLENDMODE_ALPHA,alpha/8);
//a=GetFontSize()/2*90/89;
//DrawBox(x-a,y-a,x+a,pos+a,color,TRUE);
}
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
SetGraphMode(SCREEN_WIDTH,SCREEN_HEIGHT,32);
if( ChangeWindowMode(TRUE) != DX_CHANGESCREEN_OK || DxLib_Init() == -1 ) return -1; //初期化処理
SetDrawScreen( DX_SCREEN_BACK ); //裏画面に設定
SetBackgroundColor(0,17,125);
ChangeFont("Impact",DX_CHARSET_DEFAULT);
ChangeFontType(DX_FONTTYPE_ANTIALIASING_8X8);
SetFontSize(SCREEN_HEIGHT/13);
while(!ProcessMessage() && !ClearDrawScreen() && !UpdateKeyStateAll() && !Key[KEY_INPUT_ESCAPE]){
//↑メッセージ処理 ↑画面をクリア ↑キーボード入力状態取得 ↑ESCが押されていない
//ココに処理を書いていく
DrawString2(100,0,"1234567890123",GetColor(255,255,255),105);
ScreenFlip();//裏画面を表画面に反映
}
DxLib_End();
return 0;
}