npm 包 Screeps-Commander 使用教程

阅读时长 11 分钟读完

介绍

Screeps-Commander是一个用于Screeps游戏的npm模块,可以使你更容易地控制你的Screeps游戏角色。Screeps是一款基于战略的小型在线游戏,玩家需要控制自己的虫洞基地,与其他全球的Screeps玩家一起争夺领地。

Screeps-Commander提供了一些方便的功能,包括快速生成和管理游戏角色,以及更容易地编写和组织复杂的角色代码。

在本文中,我们将介绍如何使用Screeps-Commander包,并提供一些示例代码和指导建议。

安装与配置

首先,我们需要将Screeps-Commander安装到我们的Screeps项目中。在Screeps项目的根目录下运行以下命令来安装Screeps-Commander:

接下来,我们需要配置Screeps-Commander以适应我们的项目。首先,在我们的项目中创建一个叫做screepsconfig.js的文件,并在其中添加以下代码:

这将允许我们使用Screeps-Commander包来连接到我们的Screeps账户,并在代码上传时指定分支。确保将YOUR_USERNAME_HEREYOUR_PASSWORD_HEREDEFAULT_BRANCH_HERE替换为你的Screeps帐户凭据和所选的分支名称。如果你要将代码上传到Screeps的私有服务器,请将ptr设置为true

使用Screeps-Commander

现在,我们已经完成了安装和配置,可以开始使用Screeps-Commander来控制我们的游戏角色了。

角色定义

首先,我们需要为我们的Screeps角色编写代码。这时候需要定义一个角色类,类里面包括run方法和shouldRun方法,这些方法在每个游戏tick里都会周期性被调用。run方法控制角色在某个tick所要执行到命令,shouldRun方法控制角色是否应该执行命令。

例如,我们要定义一个叫做builder的角色,用于建造和维护基地结构。我们可以在我们的项目中创建一个名为builder.js的文件,并在其中添加以下代码:

-- -------------------- ---- -------
----- ------- -
  ---------- -
    -- ---------------------- -- ---------------------------- -- -- -
      --------------------- - ------
      ------------- ----------
    -
    -- ----------------------- -- ----------------------------- -- -- -
      --------------------- - -----
      ------------- --------
    -

    -- ----------------------- -
      ----- ------- - -----------------------------------------
      -- ---------------- -
        -- ------------------------ -- ----------------- -
          ------------------------ - ------------------- - ------- --------- - ---
        -
      -
    - ---- -
      ----- ------- - ------------------------------
      -- -------------------------- -- ----------------- -
        ------------------------ - ------------------- - ------- --------- - ---
      -
    -
  -

  ---------------- -
    ------ -----
  -
-

-------------- - - ------- --

这个角色会收集和存储资源,然后建造附近的建筑。你可以根据你的需求更改Builder角色的定义。

角色管理

现在,我们已经定义了我们的Screeps角色,接着我们需要使用Screeps-Commander来组织和管理这些角色。

首先,我们需要在我们的项目中创建一个名为roles.js的文件,以便我们可以让Screeps-Commander找到我们定义的角色。我们可以在该文件中导入并声明我们的角色类。例如,在roles.js文件中添加以下内容:

-- -------------------- ---- -------
----- - ------- - - ---------------------

-------------- - -
  -------- -
    ------ --------
    ------------- --
    ------------- ---
  --
--

这里我们将Builder角色导入并声明了一个叫做builder的角色。我们还指定了最小和最大的角色实例数量。你可以根据你的需求更改这些参数。

接下来,我们需要在我们的Screeps启动文件(例如main.js)中导入Screeps-Commander,并将我们的角色和Screeps-Commander进行关联。例如,在我们的main.js文件中添加以下内容:

在这个例子中,我们将我们定义的角色传递给ScreepsCommander构造函数中,然后在我们的游戏循环中调用commander.tick()方法。当我们调用tick()方法时,Screeps-Commander将自动管理我们的角色实例,从而让我们更加轻松地编写和组织角色代码。

示例代码

现在,我们已经完成了Screeps-Commander的安装和使用,让我们通过一个完整的示例来介绍使用Screeps-Commander的过程。

在这个示例中,我们将创建三个角色来执行不同的任务:采集器、传递者和攻击者。采集器负责收集资源,传递者负责将资源传递到我们的基地,而攻击者则负责保护我们的领地免受入侵者的攻击。

我们将在我们的项目中创建三个文件,每个文件都包含一个角色类。我们将这些文件命名为harvester.jsupgrader.jsattacker.js。这些角色类如下所示:

harvester.js

-- -------------------- ---- -------
----- --------- -
  ---------- -
    -- ------------------------------ - -- -
      ----- ------- - ------------------------------
      -- -------------------------- -- ----------------- -
        ------------------------ - ------------------- - ------- --------- - ---
      -
    - ---- -
      ----- ------- - -------------------------------- -
        ------- ----------- -- -
          ------ -
            ------------------------ -- ------------------- --
              ----------------------- -- --------------- --
              ----------------------- -- ---------------- --
            ------------------------------------------------ - -
          --
        --
      ---
      -- --------------- - -- -
        -- --------------------------- ---------------- -- ----------------- -
          ------------------------ - ------------------- - ------- --------- - ---
        -
      -
    -
  -

  ---------------- -
    ------ -----
  -
-

-------------- - - --------- --

upgrader.js

-- -------------------- ---- -------
----- -------- -
  ---------- -
    -- ----------------------------- -- -- -
      ----- ------- - ------------------------------
      -- -------------------------- -- ----------------- -
        ------------------------ - ------------------- - ------- --------- - ---
      -
    - ---- -
      -- ----------------------------------------------- -- ----------------- -
        ----------------------------------- - ------------------- - ------- --------- - ---
      -
    -
  -

  ---------------- -
    ------ -----
  -
-

-------------- - - -------- --

attacker.js

-- -------------------- ---- -------
----- -------- -
  ---------- -
    ----- ------- - -------------------------------------
    -- ---------------- -
      -- ------------------------- -- ----------------- -
        ------------------------ - ------------------- - ------- --------- - ---
      -
    - ---- -
      -- ------------------- -
        ----- ---- - ------------------------------
        -- ------ -
          ------------------ - ------------------- - ------- --------- - ---
        -
      -
    -
  -

  ---------------- -
    ------ -----
  -
-

-------------- - - -------- --

接下来,我们需要在我们的roles.js文件中指定我们的角色并设置他们的数量。

-- -------------------- ---- -------
----- - --------- - - -----------------------
----- - -------- - - ----------------------
----- - -------- - - ----------------------

-------------- - -
  ---------- -
    ------ ----------
    ------------- --
    ------------- --
  --
  --------- -
    ------ ---------
    ------------- --
    ------------- --
  --
  --------- -
    ------ ---------
    ------------- --
    ------------- --
  --
--

接下来,我们需要在我们的main.js文件中实例化我们的 ScreepsCommander 对象。

至此,我们已经完成了整个示例,我们的Screeps角色将自动采集资源并将其转移到基地中。如果有任何入侵者,攻击者将出现并击败入侵者。这里,通过Screeps-Commander的优秀封装程度,我们大量的逻辑得到了简化,让游戏开发变得更加高效。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005601d81e8991b448de484

纠错
反馈