私はこのゲームをデバッグしようとしています。 forループで何か問題があり、それが何であるかわからない。基本的には、ユーザーが準備完了をクリックした後、キャンバス上に矩形を生成させようとしています。論理エラーをデバッグする方法は何ですか?それをカナケナディでやっている。ロジックエラーをデバッグまたは絞り込む方法は?
私はdrawRects関数を印刷します。コンソールは無限ループを示し、forループを指します。
私が準備完了をクリックすると、毎回コンソールが1ずつ増加し、levelUp機能が動作していることがわかります。
私は十分ではないため、別の担当者リンクを投稿カントが、私はrandomRectsをprintlnをするとき、何もコンソールに表示されません。
したがって、levelUp関数は機能するがランダムな四角形は表示されないので、私のforループで何か問題があると推測することは安全だと思います。問題を絞り込むために使用できる他のデバッグ手法は何ですか?
最初のリンクでは '.push(randomRects)'、2番目に '.push(randRect)'になります。それはどれでしょうか?そして、あなたが推進しているものはどこに定義されていますか?あなたは '.push(randRect())'(関数を呼び出す)を試すべきですか? –
私はそれがどんなべきであるか分からない、私は本質的に推測していた。 'var randomRects = [];'は2行目で定義されたグローバル変数です。私は 'randomRects.push(randRect());'しようとしましたが、何もしません。 randRectは、ランダムなx、y、幅、高さ、および色を含む定義済みの関数です。 – Smokeyflo
従来のデバッグ方法では、 'for'ループを入力する直前のように、特定の変数の値をクリティカルポイントでチェックするために' console.log() 'をコードに配置します。あなたのケースでは、あなたのループの1つが、オブジェクトの 'length'プロパティをチェックする条件を持っていることに気付きました。そのプロパティの値が 'undefined'か何か変わった場合は、常にfalseを返して無限ループを作成できます。私があなたのケースで行う最初のことは、自分の変数が存在することを二重にチェックすることです(それらは '!== undefined'です)、必要なプロパティも存在し、 –