我很难想出如何扩展蠕变类,以便在新的javascript mmo游戏Screeps -> www.screeps.com中添加我自己的函数。
有人想清楚了吗?
谢谢
发布于 2014-11-22 18:07:39
我不知道如何做到这一点,但是我创建了一个像这样的包装类:
您创建了一个调用内存的函数,并尝试使用它的属性。见下文: var _=需要量(“送交”);
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
}所以当我需要对付蠕变的时候,我会:
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);
}或
var myCreeps = [];
_.forEach(Game.creeps, function(creep){
var myCreep = new MyCreep(creep);
myCreeps.push(myCreep);
});然后处理本地存储的myCreeps。
发布于 2017-01-24 10:06:21
有点旧的帖子,我不知道自从最初的查询发布后,Screep是否发生了变化,但是我的想法是.
为什么有包装类??为什么不扩展原来的/游戏提供的蠕变类?
例如:
Creep.prototype.myFunction = function(target){
// my logic
}
确保检查出screeps继承结构。(谷歌屏幕API并查看登陆页面上的“原型”部分)
这可以节省大量重复的代码,例如,在“Structure”原型中,一个继承函数的声明可能会为每个单独的结构子类协议保存一个单独的声明。
希望这能有所帮助。
https://stackoverflow.com/questions/27080471
复制相似问题