首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Screeps内存中的属性重置

Screeps内存中的属性重置
EN

Stack Overflow用户
提问于 2017-05-14 20:15:20
回答 2查看 96关注 0票数 0

我的记忆力有问题。它应该存储我所有的数据(而不是对象),但它会时不时地重置。下面是示例:

代码语言:javascript
复制
Memory.creeps_idx = 0;   

module.exports.loop = function () {

    console.log("c_idx:", Memory.creeps_idx, Game.time);

    if(Memory.creeps_idx==0)
    {
        Memory.creeps_idx+=1;
    }    
}

这是控制台的输出。

代码语言:javascript
复制
[13:41:01]c_idx: 0 1115
[13:41:03]c_idx: 1 1116
[13:41:05]c_idx: 0 1117
[13:41:07]c_idx: 1 1118
[13:41:09]c_idx: 1 1119
[13:41:11]c_idx: 1 1120
[13:41:13]c_idx: 1 1121
[13:41:15]c_idx: 1 1122
[13:41:17]c_idx: 0 1123
[13:41:19]c_idx: 1 1124
[13:41:21]c_idx: 1 1125
[13:41:23]c_idx: 1 1126
[13:41:25]c_idx: 1 1127

你能告诉我为什么creeps_idx将值更改为0吗?(这是在模拟器中测试的)

EN

回答 2

Stack Overflow用户

发布于 2017-06-05 05:11:09

基本上,module.exports.loop之外的任何东西都是每隔几个节拍运行一次。这就是为什么在您的原始示例中将creep_idx重置为,以及您的解决方案有效的原因。

这里的新特性是你的主模块的执行方式。在旧式体系结构中,它在每个节拍中都会被执行,其中所需的每个模块也会在每个节拍中执行。在新的体系结构中,您的主模块应该包含在游戏循环中执行的module.exports.loop函数,而其余的主模块内容仅在新的全局实例化之后执行。

http://support.screeps.com/hc/en-us/articles/204825672-New-main-loop-architecture

票数 2
EN

Stack Overflow用户

发布于 2017-05-15 18:53:42

我自己找到了解决方案。

代码语言:javascript
复制
module.exports.loop = function () {
    if (!Memory.creeps_idx) Memory.creeps_idx = 0;
    console.log("c_idx:", Memory.creeps_idx, Game.time);

    if(Memory.creeps_idx==0)
    {
        Memory.creeps_idx+=1;
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43963772

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档