mis*_*ish 2 javascript screeps
我试图编写治疗师蠕动.简单的任务:
这是我的代码(我也试过Game.CREEPS的选项,但它给出了相同的效果):
module.exports = function (creep) {
var damagedCreeps = creep.room.find(Game.MY_CREEPS, function(chr){return chr.hits < chr.hitsMax;});
if (damagedCreeps.length > 0){
creep.moveTo(damagedCreeps[0]);
creep.heal(damagedCreeps[0]);
} else {
creep.moveTo(Game.spawns.Spawn1);
}
};
Run Code Online (Sandbox Code Playgroud)
这是我的小兵(按创作顺序):
收割机正在做他们的事情,警卫正在做他的事情,"Healer1"跟随"Harvester1".
我以为我拼错了hits和hitsMax而没有注意到它但是在控制台中我得到了:
> Game.creeps.Harvester1.hits
< 300
> Game.creeps.Harvester1.hitsMax
< 300
Run Code Online (Sandbox Code Playgroud)
我唯一想到的是'chr'参数包含的东西不是creep对象.
我试过了:
这是游戏错误还是我错过了什么?
小智 5
詹姆斯是对的.你可以找到你受伤的士兵
var wounded = creep.room.find( Game.MY_CREEPS, {
filter: function(object) {
return ( object.hits < object.hitsMax );
} } );
Run Code Online (Sandbox Code Playgroud)
现在你可以检查你是否有任何东西,然后走过列表就好了
if( wounded.length ) {
// Care for any wounded soldiers
}
Run Code Online (Sandbox Code Playgroud)
和
for( var i = 0; i < wounded.length; ++i ) {
// Do something to wounded[i]
}
Run Code Online (Sandbox Code Playgroud)