JavaScriptを使い慣れていない(いくつかの基本的なチュートリアルを通して)誰かが私がここで間違っていることを教えてもらえますか?私はrun
関数を参照しようとしているので、withinCircle
関数を参照し、次にそのすべてを別のファイルにエクスポートしようとしています。とにかく私のコードを変更してもよろしいですか?私は「ベスト」プラクティスに従おうとしましたが、私はうんざりしているかもしれません。ありがとう!別のクラスにインポートされたモジュール内の関数を呼び出す
var roleGuard = {
/** @param {Creep} creep **/
run: function(creep)
{
var target = creep.pos.findClosestByRange(FIND_HOSTILE_CREEPS, {filter: { owner: { username: 'Invader' } }});
if(target!=null)
{
console.log(new RoomPosition(target.pos.x,target.pos.y,'sim'));
//ranged attack here
//within 3, but further than 1
if(creep.pos.getRangeTo(target)<=3&&creep.pos.getRangeTo(target)>1)
{
creep.rangedAttack(target);
console.log("ranged attacking");
}
}
else
{
var pp=withinCircle(creep,target,3,'sim');
console.log(pp);
creep.moveTo(pp);
}
}
//------------------------------------------------------------
//move to closest point within z units of given evenmy
withinCircle: function(creep,target,z,room)
{
var targets = [new RoomPosition(target.pos.x-z,target.pos.y-z,room), new RoomPosition(target.pos.x+z,target.pos.y-z,room),new RoomPosition(target.pos.x-z,target.pos.y+z,room),new RoomPosition(target.pos.x+z,target.pos.y+z,room)];
var closest = creep.pos.findClosestByRange(targets);
return(closest);
}
//------------------------------------------------------------
};
module.exports = roleGuard;
その他のファイルには含まれています。例えば
var roleGuard = require('role.guard');
runとwithinCircleは同じオブジェクトの一部です。私はあなたがする必要があるのは、 'this'を使って関数を呼び出すことだと思います。' var pp = this.withinCircle(...); ' –