トップページ > 過去ログ > 記事閲覧
不正終了してしまうバグがあります
名前:TKOZ 日時: 2008/09/13 18:45

いつも、お世話になっています。 今、作っているソフトは、バグが2つあります。 アプリを終了しようとすると、何か、 ウィンドウの枠だけがもう一度表示 されようとして、不正終了してしまいます。 あと、もう1つ、ソースの下のほうにある /*と*/でコメント化したコードがあります。 それを外してコンパイルすると、投手が投げている 間に1ヒットなどとなってしまいます。何が 原因なのか、分かりません。 ソースは、以下のURLにあります。 (頭にhを付けてダウンロードしたら、 Lhacaや、WinRarなどで解凍してください。) ttp://www.geocities.jp/tkoz2007/baseball_test.zip アドバイス又は、ソースの添削を希望します。 よろしくお願いします。

Page: 1 |

Re: 不正終了してしまうバグがあります ( No.1 )
名前:IW 日時:2008/09/14 14:10

 何故 DXライブラリのメッセージをフックしているのでしょうか?  特に WM_DESTROYに反応して DxLib_End()を呼ぶのは最悪で、 HookDxLibMessage()が呼ばれるのは ProcessMessage()を処理している途中なので DXライブラリの処理が途中なのにそのなかで DxLib_End()が呼ばれてしまっては あちこちで支障をきたします。  MenuCallBack関数にも DxLib_End()がありますね。これもあまりよろしくありません。  終了させたいのなら、WM_CLOSEを SendMessageして、メインループのProcessMessage()を 抜けさせるようにした方が、いいかと思います。  ひとまず、これで正常に終了は出来るようになるかとは思います。 >投手が投げている間に1ヒットなどとなってしまいます  投げ終わったかどうかの判定が入っていないので、 Player.pitchnum==Enemy.batternumであれば、ほとんどのフレームで表示されてしまうのではないかと。
Re: 不正終了してしまうバグがあります ( No.2 )
名前:TKOZ 日時:2008/09/14 16:06

IWさん、アドバイス、ありがとうございます。 IWさんのおかげで、正常に終了できました。 >投げ終わったかどうかの判定が入っていないので、 >Player.pitchnum==Enemy.batternumであれば、ほとんどのフレームで表示されてしまうのではないかと。 フラグを使えば良さそうですね。 ありがとうございます。

Page: 1 |