尝试运行这段代码时,我得到“无法将undefined转换为object”错误。我不是程序员,几乎不能编码,因此我的问题可能是非常愚蠢/无法回答我非常抱歉。
代码:
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);
}
}
}
无法确定这是否足以为您找到答案 - 如果有帮助,我可以发布更多代码。
也许正常的程序员会知道这样的错误有一些通用的答案,但像我这样的菜鸟会忘记吗?
UPDATE 好的,通过逐步执行,我发现错误在不同的函数中弹出,即使禁用上面的代码也不会弹出错误。这是弹出错误的函数:
PS.Tick = function ()
{
"use strict";
for (var NPCid = 0; NPCid < 10; NPCid++)
{
NPCAI(NPCid);
};
};
此功能每秒调用一次,它调用AI逻辑功能,通过向AI功能提供NPCid,在网格上移动10个NPC。脚本在这里失败,但并非总是如此 - 通常一个或两个NPC会迈出一步,然后才会失败。
答案 0 :(得分:0)
如果您使用的是Chrome或Firebug,则可以单步执行JavaScript代码。在Chrome上,打开工具图标(右上角的扳手),然后从下拉菜单和“开发人员工具”中选择“工具”,启用开发人员工具。在底部,您应该在屏幕下方看到一个用于脚本的按钮。点击它并导航到您的页面。当您看到JavaScript文件打开它并在“if”语句中放置断点时。重新加载页面,然后在调试器停止代码时查看PS和NPC的值。