画像の上に文字を表示させるやり方。
Posted: 2008年6月21日(土) 19:12
ゲームのタイトル画面を作っているのですが、背景に画面いっぱいの画像を写してしまったら、文字なのが背景に隠れて表示できなくなってしまいます。背景の下に文字が言ってしまうのではなく、文字の下に背景が来るようにするためにはどうしたらよいですか?
ソース
#include "DxLib.h"
int function_status=0,White;
char KeyBuf[ 256 ] ;
void A(){
DrawString( 160 , 340 , "PRESS ENTER KEY" , White );
if( KeyBuf[ KEY_INPUT_RETURN ] == 1 )
function_status=1;
}
void B(){
PlaySound( "onngaku/start.wav" , DX_PLAYTYPE_BACK ); // test.midのバックグラウンド演奏
function_status=2;
}
void C(){
DrawString( 160 , 340 , "PRESS ENTER KEY" , White );
}
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
ChangeWindowMode( TRUE ) ; //ウィンドウモードに変更
if( DxLib_Init() == -1 ) return -1; // DXライブラリ初期化処理 エラーが起きたら終了
White = GetColor( 255 , 255 , 255 ) ; //色の取得
SetDrawScreen( DX_SCREEN_BACK ) ; // 描画先を裏画面に設定
while( 1 ){
ClearDrawScreen(); // 裏画面のデータを全て削除
GetHitKeyStateAll( KeyBuf ) ; // すべてのキーの状態を得る
switch(function_status){
case 0:
A();
break;
case 1:
B(),C();
break;
case 2:
DxLib_End() ; // DXライブラリ使用の終了処理
return 0;
break;
}
SetFontSize( 85 ) ; //サイズを20に変更
SetFontThickness( 1 ) ; //太さを1に変更
ChangeFont( "HGS創英角ポップ体" ) ; //HGS創英角ポップ体に変更
ChangeFontType( DX_FONTTYPE_ANTIALIASING_EDGE );//アンチエイリアス&エッジ付きフォントに変更
DrawString(25,120,"ゲームタイトル!! ",White);
SetFontSize( 30 ) ; //サイズを20に変更
SetFontThickness( 1 ) ; //太さを1に変更
ChangeFont( "HGS創英角ポップ体" ) ; //HGS創英角ポップ体に変更
ChangeFontType( DX_FONTTYPE_ANTIALIASING_EDGE );//アンチエイリアス&エッジ付きフォントに変更
LoadGraphScreen( 0 ,0 , "gazou/A.jpg" ,FALSE) ;
if( ProcessMessage() == -1 ) break ; //エラーが起きたら終了
ScreenFlip() ; // 裏画面データを表画面へ反映
}
DxLib_End() ; // DXライブラリ使用の終了処理
return 0 ; // ソフトの終了
}
ソース
#include "DxLib.h"
int function_status=0,White;
char KeyBuf[ 256 ] ;
void A(){
DrawString( 160 , 340 , "PRESS ENTER KEY" , White );
if( KeyBuf[ KEY_INPUT_RETURN ] == 1 )
function_status=1;
}
void B(){
PlaySound( "onngaku/start.wav" , DX_PLAYTYPE_BACK ); // test.midのバックグラウンド演奏
function_status=2;
}
void C(){
DrawString( 160 , 340 , "PRESS ENTER KEY" , White );
}
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
ChangeWindowMode( TRUE ) ; //ウィンドウモードに変更
if( DxLib_Init() == -1 ) return -1; // DXライブラリ初期化処理 エラーが起きたら終了
White = GetColor( 255 , 255 , 255 ) ; //色の取得
SetDrawScreen( DX_SCREEN_BACK ) ; // 描画先を裏画面に設定
while( 1 ){
ClearDrawScreen(); // 裏画面のデータを全て削除
GetHitKeyStateAll( KeyBuf ) ; // すべてのキーの状態を得る
switch(function_status){
case 0:
A();
break;
case 1:
B(),C();
break;
case 2:
DxLib_End() ; // DXライブラリ使用の終了処理
return 0;
break;
}
SetFontSize( 85 ) ; //サイズを20に変更
SetFontThickness( 1 ) ; //太さを1に変更
ChangeFont( "HGS創英角ポップ体" ) ; //HGS創英角ポップ体に変更
ChangeFontType( DX_FONTTYPE_ANTIALIASING_EDGE );//アンチエイリアス&エッジ付きフォントに変更
DrawString(25,120,"ゲームタイトル!! ",White);
SetFontSize( 30 ) ; //サイズを20に変更
SetFontThickness( 1 ) ; //太さを1に変更
ChangeFont( "HGS創英角ポップ体" ) ; //HGS創英角ポップ体に変更
ChangeFontType( DX_FONTTYPE_ANTIALIASING_EDGE );//アンチエイリアス&エッジ付きフォントに変更
LoadGraphScreen( 0 ,0 , "gazou/A.jpg" ,FALSE) ;
if( ProcessMessage() == -1 ) break ; //エラーが起きたら終了
ScreenFlip() ; // 裏画面データを表画面へ反映
}
DxLib_End() ; // DXライブラリ使用の終了処理
return 0 ; // ソフトの終了
}