如何在Screeps中攻击敌人

par*_*r86 12 javascript screeps

在玩尖锐的时候,我无法弄清楚如何攻击敌人.这是我尝试过的.

我创建了我的攻击者蠕变:

Game.spawns.Spawn1.createCreep(['attack','move'],'Attacker1');
Run Code Online (Sandbox Code Playgroud)

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

Game.creeps.Attacker1.attack("Player 3");
Run Code Online (Sandbox Code Playgroud)

敌人的正确语法是什么?

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

"玩家3"是敌人的名字.我需要一些如何瞄准敌人并与之作斗争.

dlk*_*ulp 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]);
Run Code Online (Sandbox Code Playgroud)

这段代码:

  1. 创建一个名为creep的蠕变Attacker1,并将该对象分配给名为attacker的var
  2. 使用攻击者的find()功能查找所有敌人并将其分配给名为"敌人"的阵列
  3. 将攻击者移动到阵列中的第一个敌人(.attack()仅适用于近距离)
  4. 攻击敌人阵列中的第一个敌人