タイトルについて

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
xxk1

タイトルについて

#1

投稿記事 by xxk1 » 14年前

このサイトを参考にしながら、タイトルを組んでみました。
プログラミングのうまい人から見て、このコードをもっと簡単に書くことができる、無駄な部分はありますか?

コード:

#include "DxLib.h"
 
int Key[256];
 
int GetHitKeyStateAll_2(int GetHitKeyStateAll_InputKey[]){
    char GetHitKeyStateAll_Key[256];
    GetHitKeyStateAll( GetHitKeyStateAll_Key );
    for(int i=0;i<256;i++){
        if(GetHitKeyStateAll_Key[i]==1) GetHitKeyStateAll_InputKey[i]++;
        else                            GetHitKeyStateAll_InputKey[i]=0;
    }
    return 0;
}
 


int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
    ChangeWindowMode(TRUE);//ウィンドウモード
    if(DxLib_Init() == -1 || SetDrawScreen( DX_SCREEN_BACK )!=0) return -1;//初期化と裏画面化
 
    while(ProcessMessage()==0 && ClearDrawScreen()==0 && GetHitKeyStateAll_2(Key)==0 && Key[KEY_INPUT_ESCAPE]==0){
          //↑メッセージ処理          ↑画面をクリア           ↑入力状態を保存       ↑ESCが押されていない
 
 
        //ココ!! 
         LoadGraphScreen( 0 , 0 , "top.jpg" , TRUE ) ;

		int White;
        White   = GetColor( 100 , 255 , 0) ; // 
		SetFontSize( 40 ) ;                             //サイズを20に変更
        SetFontThickness( 1 ) ;                         //太さを1に変更
        ChangeFont( "HGS創英角ポップ体" ) ;              //HGS創英角ポップ体に変更
        ChangeFontType( DX_FONTTYPE_ANTIALIASING_EDGE );//アンチエイリアス&エッジ付きフォントに変更


        DrawFormatString(100,100, White , "なんとかゲーム" );//文字列表示
		SetFontThickness( 10 ) ; 
		DrawFormatString(100,200, White , "Zキーでゲーム開始!" );
		DrawFormatString(100,260, White , "Xキーで終了" );
		White   = GetColor( 255 , 0 , 0) ;
        if(!0){
			
	if(Key[KEY_INPUT_Z] >= 1 )      //ボタンが押されたら
            DrawFormatString(220,300, White , "スタート" );
			
	if(Key[KEY_INPUT_X] == 1 )      //ボタンが押されたら
           exit(0);
			;
; 
}
        ScreenFlip();
    }
 
    DxLib_End();
    return 0;
}

アバター
Dixq (管理人)
管理人
記事: 1662
登録日時: 15年前
住所: 北海道札幌市
連絡を取る:

Re: タイトルについて

#2

投稿記事 by Dixq (管理人) » 14年前

うまい人ではないですが、お答えします。
毎回変更しないといけない処理はなるべく書かないようにした方がよいです。
以下箇条書きにしました。
  1. GetColor関数はループで毎回呼ぶ必要はありません。最初に一度だけ呼びましょう。
  2. 毎回読み込みを行うLoadGraphScreen関数は普通使いません。LoadGraphで読み込んで、DrawGraphで描画しましょう。
  3. SetFontSizeなどで毎回フォントを変更するとものすごく重くなります。フォントデータを作ってフォントデータで描画しましょう。詳しくはこちら
  4. if(!0)は何を意味したいのでしょうか?条件文が定数では意味を成しません。
  5. Zボタンが押されたらSTARTが表示される部分、これでは押している間しか表示できません。フラグなどを使い一定時間描画する必要があるでしょう。
  6. ゲーム中exitで終了するのは適切ではありません。終了関数を作り、きちんと終了させましょう。例えばこの場合、DxLib_End()を通りません。

xxk1

Re: タイトルについて

#3

投稿記事 by xxk1 » 14年前

くわしくありがとうございました
参考にしたいとおもいます

閉鎖

“C言語何でも質問掲示板” へ戻る