00001 //! @file DrawMain2.cpp 00002 //! @brief Windowsのみ版ゲームメイン関数郡(シーン単位) 00003 00004 #include <stdio.h> //sprintf()のため 00005 #include "main.h" 00006 #include "DrawMain.h" 00007 00008 //============================================================================ 00009 //型宣言 00010 //============================================================================ 00011 00012 //============================================================================ 00013 //定数 00014 //============================================================================ 00015 00016 //============================================================================ 00017 //外部変数 00018 //============================================================================ 00019 00020 //============================================================================ 00021 //内部変数 00022 //============================================================================ 00023 static DWORD FpsValue; //!< FPSの値(受け取り用) 00024 static DWORD waitTime; //!< waitした時間(受け取り用) 00025 00026 00027 //============================================================================ 00028 //内部関数 00029 //============================================================================ 00030 static void Proc(); //!< 処理 00031 static void Render(); //!< 描画 00032 00033 //============================================================================ 00034 //外部公開関数 00035 //============================================================================ 00036 //================================= 00037 void *FrameInit(); //!< 初期化 00038 void *FrameRelease(); //!< 開放 00039 void *DrawFrame(); //!< 描画 00040 //================================= 00041 LRESULT MyWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);//!< 独自ウインドウプロシージャ 00042 00043 //============================================================================ 00044 /*! 00045 * 独自ウインドウプロシージャ 00046 * @param[in] hWnd ウインドウハンドル 00047 * @param[in] uMsg ウインドウメッセージ 00048 * @param[in] wParam ウインドウメッセージパラメータ1 00049 * @param[in] lParam ウインドウメッセージパラメータ2 00050 * @retval 1 通常終了 00051 * @retval 0 何らかの処理がされた 00052 * @brief WindowProc()処理以外でアプリケーション特有の処理をさせたい時に処理を追加して使う 00053 * WindowProc()から呼ばれる 00054 */ 00055 //============================================================================ 00056 LRESULT MyWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) 00057 { 00058 00059 return 1; 00060 } 00061 00062 00063 00064 //============================================================================ 00065 //! 初期化 00066 //! @retval NULL 初期化失敗 00067 //! @retval 関数のアドレス 次に処理する関数 00068 //! @brief アプリケーションの初期化を行う 00069 //! メッセージループ手前で呼ばれる 00070 //============================================================================ 00071 void *FrameInit() 00072 { 00073 MessageBox(hWindow,"メインを初期化します","FrameInit",MB_OK); 00074 /* 00075 //FPS値をセット 00076 SetFpsValue(60); //1秒間に60回更新されるように 00077 */ 00078 //================================= 00079 pNowRelease = FrameRelease; 00080 return (void *)DrawFrame; 00081 //================================= 00082 } 00083 00084 //============================================================================ 00085 //! 開放 00086 //! @retval NULL 開放失敗 00087 //! @retval 関数のアドレス 次に処理する関数 00088 //! @brief アプリケーションの開放処理を行う 00089 //! メッセージループ終了直後に呼ばれる 00090 //============================================================================ 00091 void *FrameRelease() 00092 { 00093 MessageBox(hWindow,"メインを開放します","FrameRelease",MB_OK); 00094 00095 return NULL; 00096 } 00097 00098 //============================================================================ 00099 //! 処理 00100 //! @return なし 00101 //! @brief キャラの移動など描画以外の処理を行う 00102 //! DrawFrame()より呼ばれる 00103 //============================================================================ 00104 void Proc() 00105 { 00106 00107 } 00108 00109 //============================================================================ 00110 //! 描画 00111 //! @return なし 00112 //! @brief 描画全般を行う 00113 //! DrawFrame()より呼ばれる 00114 //============================================================================ 00115 void Render() 00116 { 00117 /* 00118 //タイトルバーにFPS値を表示 00119 TCHAR msg[256]; 00120 sprintf(msg,"FPS : %d",FpsValue); 00121 SetWindowText(hWindow,msg); 00122 */ 00123 } 00124 00125 //============================================================================ 00126 //! メインの処理をする関数 00127 //! @retval NULL 失敗 00128 //! @retval 関数のアドレス 次に処理する関数 00129 //! @brief ゲームのメインループ内の処理を行う 00130 //! 00131 //! メッセージループから呼ばれる 00132 //============================================================================ 00133 void *DrawFrame() 00134 { 00135 /* 00136 //処理開始時間をセット 00137 SetBeforTime(); 00138 00139 Proc(); 00140 00141 Render(); 00142 00143 //処理終了時間をセット 00144 SetNowTime(); 00145 00146 //Sleepする時間を取得 00147 if(GetElapsedTime(&waitTime)) 00148 Sleep(waitTime);//Sleepする必要があるならSleep 00149 00150 //今のFPS状況(値)を取得 00151 GetNowFPSValue(&FpsValue); 00152 */ 00153 00154 //================================= 00155 if(IDYES == MessageBox(hWindow,"メインを終了しますか?","DrawFrame",MB_YESNO)) 00156 return FrameRelease; 00157 00158 return DrawFrame; 00159 //================================= 00160 } 00161