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);
            }
        }
    }

无法确定这是否足以为您找到答案 - 如果有帮助,我可以发布更多代码。

也许对于普通程序员会知道的这种错误有一些通用的答案,但是像我这样的菜鸟会忘记吗?

更新好的,通过逐步执行,我发现错误会在不同的函数中弹出,即使禁用上面的代码会使错误不会弹出。这是使错误弹出的函数:

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

该函数每秒调用一次,它调用 AI 逻辑函数,通过向 AI 函数提供 NPCid 在网格上移动 10 个 NPC。脚本在这里失败,但并非总是如此 - 通常一两个 NPC 迈出一步,然后函数才会失败。

4

1 回答 1

0

如果您使用的是 Chrome 或 Firebug,您可以单步执行 JavaScript 代码。在 Chrome 上,打开工具图标(右上角的扳手),然后通过从下拉菜单中选择“工具”和“开发者工具”来启用开发者工具。在底部,您应该会在屏幕下方看到一个用于脚本的按钮。单击它并导航到您的页面。当你看到你的 JavaScript 文件打开它并在“if”语句处放置一个断点。重新加载您的页面,然后在调试器停止您的代码时查看 PS 和 NPC 的值。

于 2012-07-08T13:27:37.203 回答