• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C言語で作ったゲームがフリーズします)

C言語で作ったゲームがフリーズする理由と解決方法

このQ&Aのポイント
  • C言語で作成したゲームがフリーズする現象について、原因と解決方法について解説します。
  • 問題が発生するのは1分を過ぎたあたりで、画像(キャラクター)の動きが遅くなり、最終的にフリーズします。
  • 解決方法としては、while文の中での処理が原因だと考えられるため、処理を短縮するなどの対策が必要です。

質問者が選んだベストアンサー

  • ベストアンサー
  • zwi
  • ベストアンサー率56% (730/1282)
回答No.3

LoadGraph()がずっと呼び続けられている可能性が高いように思います。 もし、タスクマネージャで調べて最初に比べて重くなったときに消費メモリが増えているのなら、ほぼこれでしょう。 ※ mallocをむちゃくちゃしている可能性もありますが。

marimmo-
質問者

お礼

ありがとうございます。 DrawGraphの仮引数にLoadGraph("ファイル名")を直接渡していました。(1度しか使わないのでハンドルを代入する変数は用意していませんでした。) ハンドルを代入する変数を用意したことで順調に進みました。 これからもよろしくお願いします。

その他の回答 (2)

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.2

時間でだんだん遅くなるということで、なにか負荷になるものが増えつづけている状態だと思われます。 ・メモリの確保と解放 ・ハンドルの確保と解放 ・メッセージの送信と処理 ・スレッドの作成と停止 といったあたりの不一致が思いつきます。 ・デバッガで追い掛ける ・使っている関数の説明等をよく読んで、使い方が間違ってないか確認する 使用後になんらかの操作が必要なら、マニュアルに書いてあるはず ・タスクマネージャを使って、メモリや負荷が増えつづけていないか確認する。 できれば、高機能のもの(Process Explorer等)でより詳しく確認する というあたりもやってみましょう

marimmo-
質問者

お礼

ありがとうございます。 タスクマネージャーの使用で解決しました。 これからもよろしくお願いします。

noname#163110
noname#163110
回答No.1

int i=0;ってwhile文の前につけるのではないでしょうか? ずっとi=0→if文true→DrawGraphのままのような気がしますが・・・

marimmo-
質問者

補足

ありがとうございます。 こちらに記載する際に間違っていました。 プログラムソースの方ではwhile文の前になっています。 その他はどのようなことに気をつければいいのでしょうか? よろしくお願いします。

関連するQ&A