今回は少し漠然とした質問になってしまいますが、
これからのゲーム製作の上での方針(?)を教えていただきたいです。
C言語とDXライブラリは初めて2週間程度でゲーム製作の経験は今回が初めてです.
#include "DxLib.h"
int counter=0;
int color_white;
int y = 0;
int count=0;
char Key[256];
#define DISPLAY_POS_X 500
#define DISPLAY_POS_Y(i) (200 + 50 * (i))
#define N 5 // 項目数
#define M -1
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( DISPLAY_POS_X - 20 , DISPLAY_POS_Y(y) , "■" , White );
DrawString( DISPLAY_POS_X , DISPLAY_POS_Y(0) , "SHOOTING" , White );
DrawString( DISPLAY_POS_X , DISPLAY_POS_Y(1) , "MUSICROOM" , White );
DrawString( DISPLAY_POS_X , DISPLAY_POS_Y(2) , "OPTION" , White );
DrawString( DISPLAY_POS_X , DISPLAY_POS_Y(3) , "MANUAL" , White );
DrawString( DISPLAY_POS_X , DISPLAY_POS_Y(4) , "QUIT" , White );
}
void SetColor(){
color_white = GetColor(255,255,255); //白色ハンドルを取得
}
void Backmusic(){
int Sound ;
Sound = LoadSoundMem( "music/harutoman.wav" ); //wavファイルを読み込み、ハンドルをint型変数へ格納
PlaySoundMem( Sound , DX_PLAYTYPE_BACK );//バックグラウンド再生
}
int FontHandle;
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
SetDrawScreen( DX_SCREEN_BACK ) ; //裏画面を使用する。
message_box();
int RefreshTime=0;
SetMainWindowText( "時鏡 鉢帳録" ) ;// タイトルを変更
SetColor(); //色を取得
int Key[256];
int White ; //色とy座標の宣言
if(DxLib_Init() == -1 || SetDrawScreen( DX_SCREEN_BACK )!=0) return -1;//初期化と裏画面化
Backmusic(); //演奏
White = GetColor( 255 , 255 , 255 ) ; //色の取得
RefreshTime = GetNowCount(); //今の時間を取得
int image; //ハンドルを受け取るためのint型変数を宣言
image = LoadGraph( "gazo/taitoru2.png" ) ; //gazo/taitoru2.pngのハンドルを代入
int image2; //ハンドルを受け取るためのint型変数を宣言
image2 = LoadGraph( "gazo/rogo.png" ) ; //gazo/rogo.pngのハンドルを代入
int image3; //ハンドルを受け取るためのint型変数を宣言
image3 = LoadGraph( "gazo/option.png" ) ; //gazo/rogo.pngのハンドルを代入5
while(ProcessMessage()==0 && ClearDrawScreen()==0 && GetHitKeyStateAll_2(Key)==0 && Key[KEY_INPUT_ESCAPE]==0){
//↑メッセージ処理 ↑画面をクリア ↑入力状態を保存 ↑ESCが押されていない
DrawGraph( 0 , 0 , image , FALSE ) ; //gazo/taitoru2.pngを表示
DrawGraph( 10 , 10 , image2 , TRUE ) ; //gazo/rogo.pngを表示
char_disp(White,y); // 文字を描画
;
if( Key[KEY_INPUT_DOWN]==1 ||( Key[KEY_INPUT_DOWN]%5==0 && Key[KEY_INPUT_DOWN]>30)){
// たった今押したか、30カウンター以上押しっぱなしかつ5回に一度
y++;
if(y==N) // y座標がNなら(選択が一番下なら)
y=0; // 選択座標を一番上に
}
if( Key[KEY_INPUT_UP]==1 ||( Key[KEY_INPUT_UP]%5==0 && Key[KEY_INPUT_UP]>30)){
// たった今押したか、30カウンター以上押しっぱなしかつ5回に一度
y--;
if(y==M) // y座標がMなら(選択が一番上なら)
y=4; // 選択座標を一番下に
}
if( Key[KEY_INPUT_Z ]==1 ||( Key[KEY_INPUT_Z ]%5==0 && Key[KEY_INPUT_Z ]>30)){
// たった今押したか、30カウンター以上押しっぱなしかつ5回に一度
if(y==4){ // y座標が4なら(選択が一番下なら)
DxLib_End(); // DXライブラリ使用の終了処理
return 0;} // ソフトの終了
}
(コメントに続きます)
