#include "DxLib.h"
#define WIDTH 24
// 数字グラフィック横幅
#define HEIGHT 24
// 数字グラフィック高さ
int NumHandle[ 10 ];
// 数字グラフィックの識別番号を保存する配列
// 数値をグラフィック表示する関数
void NumDraw( int Num ) ;
// WinMain関数
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow )
{
if(
DxLib_Init() == -1 )
// DXライブラリ初期化処理
{
return -1;
// エラーが起きたら直ちに終了
}
// 数字グラフィックを分割読みこみ
// 分割数は全部で10こ、1列当たり10個の分割数でそれが1行だけあるので
// 以下のような記述になります。
LoadDivGraph( "Num.bmp" , 10 , 10 , 1 , WIDTH , HEIGHT , NumHandle ) ;
// 数値256をグラフィック数字で表示
NumDraw( 256 ) ;
// キー入力待ち
WaitKey() ;
DxLib_End() ;
// DXライブラリ使用の終了処理
return 0 ;
// ソフトの終了
}
// 数値をグラフィック表示する関数
void NumDraw( int Num )
{
int i , BeamWidth , x ;
// Numが十進数で何桁になるか調べる
BeamWidth = 0 ;
for( i = 10 ; Num >= i ; i *= 10 ) BeamWidth ++ ;
// 画面左上にグラフィックで描画
// x は数字グラフィックを描く矩形の左端の座標です
x = BeamWidth * WIDTH ;
for( i = 0 ; i <= BeamWidth ; i ++ )
{
// 数字の描画(透過色あり)
// NumHandle 配列には要素番号0には『0』のグラフィック識別番号が
// 1には『1』のグラフィック識別番号が入っているので、
// DrawGraph( 0 , 0 , NumHandle[ 0 ] , TRUE ) ; とすれば
// 『0』のグラフィックを描画できることをお忘れなく
DrawGraph( x , 0 , NumHandle[ Num % 10 ], TRUE ) ;
// 描画X座標を移動
x -= WIDTH ;
// 1番下の桁が描画し終わったので一桁下げる
Num /= 10 ;
}
}