【问题标题】:How do I attack an enemy in Screeps [closed]如何在 Screeps 中攻击敌人 [关闭]
【发布时间】:2015-01-19 03:36:49
【问题描述】:

在玩screeps 时,我不知道如何攻击敌人。这是我尝试过的。

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

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

然后当第一个敌人出现在屏幕上时,我尝试运行这个命令,但它失败了。

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

敌人的正确语法是什么?

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

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

【问题讨论】:

  • 如果您不了解游戏,请不要讨厌这个问题!这很清楚!他想知道如何在游戏中攻击东西。我有同样的问题,我花了很多时间翻阅文档来弄清楚。我很困惑为什么人们认为这是一个令人困惑、不清楚或其他不好的问题。他提供了他尝试过的示例代码并提出了一个问题。我不确定他还能做些什么来更清楚地说明这一点。
  • @dlkulp “我尝试运行此命令,但它失败了。”是一个非常蹩脚的错误描述,对于“帮手”来说非常无用......你不同意吗?
  • @PaulZahra 不!当对预期行为和示例代码有清晰的描述时,就不会。我很快就能看出他使用了一个字符串,而它应该是一个对象引用!

标签: javascript screeps


【解决方案1】:

我不知道为什么你的投票率如此之低,你在这里放了很多信息!看起来你已经接近获得它了!如果您阅读链接到的文档,您会看到它说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 的cree 并将该对象分配给一个名为attacker 的变量
  2. 使用攻击者的find() 函数查找所有敌人并将它们分配给一个名为敌人的数组
  3. 将攻击者移动到阵列中的第一个敌人(.attack() 仅适用于近距离)
  4. 攻击敌人阵列中的第一个敌人

【讨论】:

  • 这行得通。你怎么知道使用 HOSTILE_CREEPS?我在文档中没有看到。谢谢。
  • herefind(type, [opts]) 下。搜索了一下,不知道为什么会出现在房间页面上。
猜你喜欢
  • 1970-01-01
  • 2017-06-29
  • 2019-11-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-02-26
相关资源
最近更新 更多