Memory 如何在内存中存储类变量?

Memory 如何在内存中存储类变量?,memory,screeps,Memory,Screeps,我在这里读了一些关于它的其他问题,但我就是不明白 我有一些变量在执行过程中会发生变化,所以我知道它们需要放在内存中 var populationManager = { init: function(){ Memory.PopulationManager = {}; Memory.PopulationManager.nHarvesters = 0; Memory.PopulationManager.nUpgraders = 0;

我在这里读了一些关于它的其他问题,但我就是不明白

我有一些变量在执行过程中会发生变化,所以我知道它们需要放在内存中

var populationManager = {

    init: function(){
        Memory.PopulationManager = {};
        Memory.PopulationManager.nHarvesters = 0;
        Memory.PopulationManager.nUpgraders = 0;
        Memory.PopulationManager.nBuilders = 0;

        Memory.PopulationManager.harvesterNameNum = 0;
        Memory.PopulationManager.upgraderNameNum = 0;
        Memory.PopulationManager.builderNameNum = 0;
    },

    demographics: function(){
         if( ! Memory.PopulationManager.nHarvesters )
             this.init(); //not initialized yet
但是它告诉我它不能读取未定义的属性


如何创建自己的screeps内存对象并使用它们?

查看代码后,我发现问题在于您正在检查一个不存在的对象的属性,您应该做的是检查实际对象是否存在

改变

if(!Memory.PopulationManager.nhavesters)

if(!Memory.PopulationManager)


这将满足您的需要。

您在控制台中执行JSON.Stringify(Memory.PopulationManager)时会得到什么输出?