尝试运行这段代码时出现“无法将未定义转换为对象”错误。我不是程序员,几乎不会编码,因此我的问题可能非常愚蠢/无法回答,我深感抱歉。
代码:
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);
}
}
}
无法确定这是否足以为您找到答案 - 如果有帮助,我可以发布更多代码。
也许对于普通程序员会知道的这种错误有一些通用的答案,但是像我这样的菜鸟会忘记吗?
更新好的,通过逐步执行,我发现错误会在不同的函数中弹出,即使禁用上面的代码会使错误不会弹出。这是使错误弹出的函数:
PS.Tick = function ()
{
"use strict";
for (var NPCid = 0; NPCid < 10; NPCid++)
{
NPCAI(NPCid);
};
};
该函数每秒调用一次,它调用 AI 逻辑函数,通过向 AI 函数提供 NPCid 在网格上移动 10 个 NPC。脚本在这里失败,但并非总是如此 - 通常一两个 NPC 迈出一步,然后函数才会失败。