0

このコードを実行しようとすると、「未定義をオブジェクトに変換できません」というエラーが表示されます。私はプログラマーではなく、ほとんどコーディングできないため、私の質問は非常に愚かであり、申し訳ありませんが答えられない可能性があります。

コード:

if (path == F[0])
    {
        //go N
        if (pointAy > 0) 
        {
            if (!(PS.BeadData(pointAx, pointAy - 1) === "blocked")) 
            {
                // Set bead to Previous State
                PS.BeadColor(pointAx, pointAy, previous_bead_NPC[NPCid][2]);
                PS.BeadData(pointAx, pointAy, 0);
                PS.BeadGlyph(pointAx, pointAy, " ");                 
                // Increment
                pointAy -= 1;
                // Place NPC
                MakeNPC(pointAx, pointAy, NPC[NPCid][2], NPC[NPCid][3], NPC[NPCid][4], NPC[NPCid][5], 1);
            }
        }
    }

これで答えを見つけるのに十分かどうかはわかりません。役立つ場合は、さらに多くのコードを投稿できます。

おそらく、通常のプログラマーが知っているようなエラーに対する一般的な答えがあるかもしれませんが、私のような初心者は気付かないでしょうか?

UPDATEOK、ステップバイステップの実行により、上記のコードを無効にするとエラーがポップアップしなくても、別の関数でエラーが発生することがわかりました。これは、エラーをポップアップさせる関数です。

PS.Tick = function ()
{
"use strict";
for (var NPCid = 0; NPCid < 10; NPCid++)
    {
        NPCAI(NPCid);
    };
};

この関数は毎秒呼び出され、AI ロジック関数を呼び出して、NPCid を AI 関数に提供することにより、グリッド上で 10 個の NPC を移動します。スクリプトはここで失敗しますが、常にではありません。通常、NPC の 1 つまたは 2 つがステップを実行し、その後関数が失敗します。

4

1 に答える 1

0

Chrome または Firebug を使用している場合は、JavaScript コードをステップ実行できます。Chrome では、ツール アイコン (右上隅にあるレンチ) を開き、ドロップダウン メニューから [ツール] を選択して [開発者ツール] を選択し、開発者ツールを有効にします。画面の下部に、スクリプト用のボタンが表示されます。それをクリックして、自分のページに移動します。JavaScript ファイルが表示されたら、それを開き、"if" ステートメントにブレークポイントを設定します。ページをリロードし、デバッガーがコードを停止したときに PS と NPC の値を確認します。

于 2012-07-08T13:27:37.203 に答える