如何在Screeps中攻击敌人

时间:2014-11-21 03:46:17

标签: javascript screeps

在玩screeps时,我无法弄清楚如何攻击敌人。这是我试过的。

我创造了我的攻击者蠕动:

Game.spawns.Spawn1.createCreep(['attack','move'],'Attacker1');

然后,当第一个敌人进入屏幕时,我尝试运行此命令,但它失败了。

Game.creeps.Attacker1.attack("Player 3");

敌人的正确语法是什么?

编辑: 添加文档链接以访问游戏中的对象。 http://screeps.com/docs/Creep.php

“玩家3”是敌人的名字。我需要一些如何瞄准敌人并与之战斗。

1 个答案:

答案 0 :(得分:10)

我不确定为什么你这么多投票,你已经在这里提供了大量的信息!看起来你已经接近了!如果您阅读了与您相关联的文档,则会看到它显示attack(target)并且该目标是一个对象。目前,您正在传递attack()字符串"Player 3"。为了让攻击函数实际定位你需要给它一个对象的东西。尝试这样的事情:

Game.spawns.Spawn1.createCreep([Game.ATTACK, Game.MOVE],'Attacker1');
var attacker = Game.creeps.Attacker1;
var enemies= attacker.room.find(Game.HOSTILE_CREEPS);
attacker.moveTo(enemies[0]);
attacker.attack(enemies[0]);

此代码:

  1. 创建名为Attacker1的creep,并将该对象分配给名为attacker的var
  2. 使用攻击者的find()函数查找所有敌人并将其分配给名为enemies的数组
  3. 将攻击者移动到阵列中的第一个敌人(.attack()只能近距离工作)
  4. 攻击敌人阵列中的第一个敌人