【问题标题】:Screeps - Unable to access Creep MemoryScreeps - 无法访问 Creep 内存
【发布时间】:2017-10-21 00:46:42
【问题描述】:

我对 Screeps 比较陌生,我一直在努力构建自己的基本 AI 系统。但是,我在最初的测试中遇到了障碍。我有一个脚本可以确定要执行的工作,然后小兵请求可用的工作。我已经能够将 Job 对象存储到cree 的内存中,但我以后想不起来了。

我可以在“内存”选项卡中确认所有信息都在那里,并且正确存储,但是当我尝试访问它时,我只能得到undefined

我使用这个模板函数创建我的工作:

jobFactory: function()
    {
        // Generates a blank JOB template
        var job = {
            'id': null,     // id of job will double as id of the target 
                                     (ie. a energy source id)
            'type': null,   // used to classify job tickets to some extent
            'spots': 0,     // total # of creeps that can be assigned to this
            'workers': []   // current # and IDs of creeps assigned
        };
        return job;
    },

然后我可以很好地存储它: creep.memory.job = job;

我尝试访问它的方式是: console.log("Creep job: " + creep.memory.job);

我已经将它与游戏教程进行了比较,对于我的生活,我似乎无法弄清楚为什么我无法从内存中访问该对象。

【问题讨论】:

  • 尝试在控制台中这样写:JSON.stringify(Game.creeps.Liam.memory.job)

标签: javascript object screeps


【解决方案1】:

我将这两行添加到我的一个角色模块的开头:

creep.memory.job = { foo: "hello", bar: 42};
console.log("Foo: " + creep.memory.job);

输出为:Foo: [object Object]

如果我改为使用console.log("Foo: " + creep.memory.job.foo);,则输出为Foo: hello

我知道这并不能解释 undefined,但我想澄清一下你应该看到什么。

另一件需要确定的是,变量creep 就是您认为的那样。在 console.log("Creep job: " + creep.memory.job); 之前立即使用 console.log(creep.name); 仔细检查。

如果这些都没有帮助,更多的代码和更多的上下文将是有用的。 (我不确定您要在哪里执行哪些代码。)另外,确切的输出是什么?你收到的是Creep job: undefined 还是undefined

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多