首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在尖叫中扩展蠕变类

如何在尖叫中扩展蠕变类
EN

Stack Overflow用户
提问于 2014-11-22 17:44:35
回答 2查看 3.9K关注 0票数 5

我很难想出如何扩展蠕变类,以便在新的javascript mmo游戏Screeps -> www.screeps.com中添加我自己的函数。

有人想清楚了吗?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-11-22 18:07:39

我不知道如何做到这一点,但是我创建了一个像这样的包装类:

您创建了一个调用内存的函数,并尝试使用它的属性。见下文: var _=需要量(“送交”);

代码语言:javascript
复制
function MyCreep(creep){
    this.creep = creep;
    this.memoryProp = creep.memory;
}

MyCreep.prototype.memoryFunc = function(){
    return this.creep.memory;
};

MyCreep.prototype.moveTo = function(target){
    this.creep.moveTo(target);
}

MyCreep.prototype.myFunction = function(target){
    //TODO something
}

所以当我需要对付蠕变的时候,我会:

代码语言:javascript
复制
var myCreeps = [];
for (var creep in Game.creeps){
    creep.memory.role = "hello memory";
    var myCreep = new MyCreep(Game.creeps[creep]);
    myCreeps.push(myCreep);      ;
    console.log("original creep memory: "+creep.memory.role);
    console.log("my creep memory func: "+myCreep.memoryFunc().role);
    console.log("my creep memory prop: "+myCreep.memoryProp.role);
}

代码语言:javascript
复制
var myCreeps = [];
_.forEach(Game.creeps, function(creep){
    var myCreep = new MyCreep(creep);
    myCreeps.push(myCreep);
});

然后处理本地存储的myCreeps。

票数 3
EN

Stack Overflow用户

发布于 2017-01-24 10:06:21

有点旧的帖子,我不知道自从最初的查询发布后,Screep是否发生了变化,但是我的想法是.

为什么有包装类??为什么不扩展原来的/游戏提供的蠕变类?

例如:

代码语言:javascript
复制
Creep.prototype.myFunction = function(target){
         // my logic
       }

确保检查出screeps继承结构。(谷歌屏幕API并查看登陆页面上的“原型”部分)

这可以节省大量重复的代码,例如,在“Structure”原型中,一个继承函数的声明可能会为每个单独的结构子类协议保存一个单独的声明。

希望这能有所帮助。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27080471

复制
相关文章

相似问题

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