このコードを実行しようとすると、「未定義をオブジェクトに変換できません」というエラーが表示されます。私はプログラマーではなく、ほとんどコーディングできないため、私の質問は非常に愚かであり、申し訳ありませんが答えられない可能性があります。
コード:
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 つがステップを実行し、その後関数が失敗します。