我对Screeps相对较新,我一直致力于构建自己的基本AI系统。但是,在我的初步测试中,我遇到了麻烦。我有一个脚本确定要做的工作,然后creeps请求可用的工作。我已经能够将Job对象存储到creep的内存中,但我以后不记得了。
我可以在“内存”选项卡中确认所有信息都存在,并且存储正确,但是当我尝试访问它时,我只得到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);
我将它与游戏教程进行了比较,对于我的生活,我似乎无法弄清楚为什么我无法从内存中访问该对象。
答案 0 :(得分:0)
我将这两行添加到我的一个角色模块的开头:
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.name);
之前立即与console.log("Creep job: " + creep.memory.job);
进行仔细检查。
如果这些都没有帮助,更多代码和更多上下文将是有用的。 (我不确定你在哪里尝试执行哪些代码。)另外,确切的输出是什么?您收到的是Creep job: undefined
还是undefined
?