Javascript 查找损坏的爬行(或如何调试)
我试着编一个治疗者的程序。 简单任务:Javascript 查找损坏的爬行(或如何调试),javascript,screeps,Javascript,Screeps,我试着编一个治疗者的程序。 简单任务: 找到损坏的蠕变 治愈受伤的蠕变 如果没有损坏 发现爬行动物,返回家园(硬编码1) 这是我的代码(我也尝试了Game.crews选项,但效果相同): module.exports=函数(蠕变){ var damagedCreeps=screw.room.find(Game.MY_crews,function(chr){return chr.hits0){ 蠕变。移动到(损伤裂缝[0]); 蠕变。愈合(损伤裂缝[0]); }否则{ 爬行。移动到(游戏。繁殖。繁
module.exports=函数(蠕变){
var damagedCreeps=screw.room.find(Game.MY_crews,function(chr){return chr.hits0){
蠕变。移动到(损伤裂缝[0]);
蠕变。愈合(损伤裂缝[0]);
}否则{
爬行。移动到(游戏。繁殖。繁殖1);
}
};
以下是我的作品(按创作顺序):
> Game.creeps.Harvester1.hits
< 300
> Game.creeps.Harvester1.hitsMax
< 300
>Game.crews.Harvester1.hits
< 300
>Game.croves.Harvester1.hitsMax
< 300
我唯一想到的是'chr'参数包含的不是蠕变对象
我试过:
这是一个游戏错误还是我错过了什么?詹姆斯是对的。你可以用电脑找到受伤的士兵
var wounded = creep.room.find( Game.MY_CREEPS, {
filter: function(object) {
return ( object.hits < object.hitsMax );
} } );
及
for(变量i=0;i<0.length;++i){
//对受伤的人做点什么
}
我对爬行一无所知,但是Room.find的api参考提到第二个参数是一个对象,它可以有一个名为filter的属性,该属性是一个函数。可能尝试var damagedCreeps=screw.room.find(Game.MY_crews,{filter:function(chr){return chr.hits我显然误读了文档。谢谢你们两位,这就像一个符咒。保护-如果你的治疗者受伤了,它会被卡在试图治愈自己,所以一定要排除它!
var wounded = creep.room.find( Game.MY_CREEPS, {
filter: function(object) {
return ( object.hits < object.hitsMax );
} } );
if( wounded.length ) {
// Care for any wounded soldiers
}
for( var i = 0; i < wounded.length; ++i ) {
// Do something to wounded[i]
}