掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
GetMessageにかかる負担について (ID:57615)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
簡易シューティングを作ってみようと思い、現在縦スクロールにて敵が上から下に移動しながら落ちてくるところまでを作成しました。 一応60FPSまでに抑えてあるのですが、画面になんらかの動作(マウス移動やキー押下)を起こし、GetMessageが送られるところで異常に処理落ちしまいます。 まだキーやマウスの判定は入れておらず、ESCで終了とWM_DESTROYくらいです。 一応抜粋: LRESULT CALLBACK CGAME::WndProc(UINT uMsg, WPARAM wParam, LPARAM lParam) { switch(uMsg) { case WM_KEYDOWN: switch(wParam) { case VK_ESCAPE: SendMessage(hWnd, WM_DESTROY, 0, 0); break; } break; case WM_DESTROY: ShowCursor(TRUE); PostQuitMessage(0); break; default: return DefWindowProc(hWnd, uMsg, wParam, lParam); } return 0; } また、GetMessageに行く前にはPeekMessageで判定するようにしています。 さらに抜粋: if (PeekMessage(&Msg, NULL, 0, 0, PM_REMOVE)){ if (GetMessage(&Msg, NULL, 0, 0)){ TranslateMessage(&Msg); DispatchMessage(&Msg); } } デバッグとしてGetMessageだけを仮にコメントとしてみたところ問題なくスムーズに動きます。 また、ウィンドウプロシージャ内を全てコメント化もしてみました。(本当はダメですが) それでもやはり処理落ちしてしまいます。 GetMessageの後の処理がまったくない状態でも処理落ちしてしまうところからGetMessage自体に処理がかかっている気がします。 意味不明です(´・ω・`) キーを押しっぱなしですとたしかにWM_KEYDOWNやWM_CHAR等のメッセージが 常に送られてくるとは思うのですが処理落ちするくらいの重さなのでしょうか? 環境はXP,VC6になります。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.