タイトル画面
Posted: 2010年10月07日(木) 20:38
初めての投稿となります。
DXライブラリを始めて1週間程度なんですが2日間ここで困っています。
タイトル画面を作ろうとしているのですがキーを押しても動きません。
#include "DxLib.h"
void message_box(){
int flag;
flag=MessageBox(
NULL ,
TEXT("Yでフルスクリーン、Nでウィンドウモードです。") ,
TEXT("スクリーン設定") ,
MB_YESNO | MB_ICONQUESTION );
if(flag==IDNO)
ChangeWindowMode( TRUE );
}
int GetHitKeyStateAll_2(int KeyStateBuf[/url]){
char GetHitKeyStateAll_Key[256];
GetHitKeyStateAll( GetHitKeyStateAll_Key );
for(int i=0;i<256;i++){
if(GetHitKeyStateAll_Key==1) KeyStateBuf++;
else KeyStateBuf=0;
}
return 0;
}
void char_disp(int White,int y){
DrawString( 150 , y , "■" , White );
DrawString( 170 , 100 , "SHOOTING" , White );
DrawString( 170 , 150 , "QUIT" , White );
}
void Background(){
int image; //ハンドルを受け取るためのint型変数を宣言
image = LoadGraph( "gazo/taitoru2.png" ) ; //taitoru2.pngのハンドルを代入
DrawGraph( 0 , 0 , image , FALSE ) ; //taitoru2.pngを表示
}
void Backmusic(){
int music; //ハンドルを受け取るためのint型変数を宣言
music = LoadGraph( "music/03.mid" ) ; //0.3midのハンドルを代入
PlayMusic( "music/03.mid" , DX_PLAYTYPE_BACK ) ; // 03.midのバックグラウンド演奏
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
int Key[256];
int White , y=100; //色とy座標の宣言
SetMainWindowText( "とあるしゅーてぃんぐ。" ) ;// タイトルを変更
message_box(); //ウィンドウ処理
if(DxLib_Init() == -1 || SetDrawScreen( DX_SCREEN_BACK )!=0) return -1;//初期化と裏画面化
White = GetColor( 255 , 255 , 255 ) ; //色の取得
while(ProcessMessage()==0 && ClearDrawScreen()==0 && GetHitKeyStateAll_2(Key)==0 && Key[KEY_INPUT_ESCAPE]==0){
//↑メッセージ処理 ↑画面をクリア ↑入力状態を保存 ↑ESCが押されていない
Background(); //背景描画
Backmusic(); //バックグラウンド演奏
char_disp(White,y); // 文字を描画
if( Key[KEY_INPUT_DOWN]==1 ||( Key[KEY_INPUT_DOWN]%5==0 && Key[KEY_INPUT_DOWN]>30)){
// たった今押したか、30カウンター以上押しっぱなしかつ5回に一度
y+=50;
if(y==150) // y座標が150なら(選択が一番下なら)
y=100; // 選択座標を一番上に
}
ScreenFlip();//裏画面を表画面に反映
}
DxLib_End(); // DXライブラリ使用の終了処理
return 0; // ソフトの終了
}
DXライブラリを始めて1週間程度なんですが2日間ここで困っています。
タイトル画面を作ろうとしているのですがキーを押しても動きません。
#include "DxLib.h"
void message_box(){
int flag;
flag=MessageBox(
NULL ,
TEXT("Yでフルスクリーン、Nでウィンドウモードです。") ,
TEXT("スクリーン設定") ,
MB_YESNO | MB_ICONQUESTION );
if(flag==IDNO)
ChangeWindowMode( TRUE );
}
int GetHitKeyStateAll_2(int KeyStateBuf[/url]){
char GetHitKeyStateAll_Key[256];
GetHitKeyStateAll( GetHitKeyStateAll_Key );
for(int i=0;i<256;i++){
if(GetHitKeyStateAll_Key==1) KeyStateBuf++;
else KeyStateBuf=0;
}
return 0;
}
void char_disp(int White,int y){
DrawString( 150 , y , "■" , White );
DrawString( 170 , 100 , "SHOOTING" , White );
DrawString( 170 , 150 , "QUIT" , White );
}
void Background(){
int image; //ハンドルを受け取るためのint型変数を宣言
image = LoadGraph( "gazo/taitoru2.png" ) ; //taitoru2.pngのハンドルを代入
DrawGraph( 0 , 0 , image , FALSE ) ; //taitoru2.pngを表示
}
void Backmusic(){
int music; //ハンドルを受け取るためのint型変数を宣言
music = LoadGraph( "music/03.mid" ) ; //0.3midのハンドルを代入
PlayMusic( "music/03.mid" , DX_PLAYTYPE_BACK ) ; // 03.midのバックグラウンド演奏
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
int Key[256];
int White , y=100; //色とy座標の宣言
SetMainWindowText( "とあるしゅーてぃんぐ。" ) ;// タイトルを変更
message_box(); //ウィンドウ処理
if(DxLib_Init() == -1 || SetDrawScreen( DX_SCREEN_BACK )!=0) return -1;//初期化と裏画面化
White = GetColor( 255 , 255 , 255 ) ; //色の取得
while(ProcessMessage()==0 && ClearDrawScreen()==0 && GetHitKeyStateAll_2(Key)==0 && Key[KEY_INPUT_ESCAPE]==0){
//↑メッセージ処理 ↑画面をクリア ↑入力状態を保存 ↑ESCが押されていない
Background(); //背景描画
Backmusic(); //バックグラウンド演奏
char_disp(White,y); // 文字を描画
if( Key[KEY_INPUT_DOWN]==1 ||( Key[KEY_INPUT_DOWN]%5==0 && Key[KEY_INPUT_DOWN]>30)){
// たった今押したか、30カウンター以上押しっぱなしかつ5回に一度
y+=50;
if(y==150) // y座標が150なら(選択が一番下なら)
y=100; // 選択座標を一番上に
}
ScreenFlip();//裏画面を表画面に反映
}
DxLib_End(); // DXライブラリ使用の終了処理
return 0; // ソフトの終了
}