文章目录

  • 前言
  • 设计
  • 角色设计
    • harvester
    • upgrader
    • builder
  • main

前言

这篇博客给想要入坑Screeps但是不知道一开始不知道如何下手的玩家的教程,关于要不要入坑这篇博文介绍的很详细:Screeps 介绍及入坑,其他关于Screeps的信息也空余参考如下文档:
中文官方文档
官方教程
Screeps API
Screep 中文教程目录

设计

这篇文章主要设计了初步自动化运行的代码,在找到并确定一个合适的房间后,选取某合适的位置设定为spawn(可以将其理解为虫族母巢),前期先确定使用如下三个角色

harvester 采矿者 将能量或元素矿开采出来并存入指定的结构中
upgrader 升级者 从指定的结构中取出能量升级房间控制器
builder 建造者 从指定的结构中取出能量并建造结构

角色设计

harvester

主要设计思路是假如这个harvester的store还有空间,那么就先找到一个source,然后到他附近收集能源,能源收集足够之后,遍历各个建筑,找出需要补充能量的建筑,然后去各个补充能量。

var roleHarvester = {/** @param {Creep} creep **/run: function(creep) {if(creep.store.getFreeCapacity() > 0) { // 背包未满 采矿var sources = creep.room.find(FIND_SOURCES);if(creep.harvest(sources[0]) == ERR_NOT_IN_RANGE) {creep.moveTo(sources[0], {visualizePathStyle: {stroke: '#ffaa00'}});}}else {var targets = creep.room.find(FIND_STRUCTURES, { //找出需要补充能量的建筑filter: (structure) => {return (structure.structureType == STRUCTURE_EXTENSION || structure.structureType == STRUCTURE_SPAWN ||structure.structureType == STRUCTURE_TOWER) &&structure.store.getFreeCapacity(RESOURCE_ENERGY) > 0;}});if(targets.length > 0) { // 需要维护的建筑数目 > 0if(creep.transfer(targets[0], RESOURCE_ENERGY) == ERR_NOT_IN_RANGE) {creep.moveTo(targets[0], {visualizePathStyle: {stroke: '#ffffff'}});}}}}
};module.exports = roleHarvester;

upgrader

upgrader主要是升级控制器用的,设计思路是用upgrading来设定是否是升级状态,是的话就去升级控制器,不是的话就去采集能量。

var roleUpgrader = {/** @param {Creep} creep **/run: function(creep) {if(creep.memory.upgrading && creep.store[RESOURCE_ENERGY] == 0) {  // 升级状态&&能量不足的时候,变为采集者creep.memory.upgrading = false; creep.say('												

Screeps入门: harvest,upgrader,builder初级自动化相关推荐

  1. Redis从入门到精通:初级篇(转)

    原文链接:http://www.cnblogs.com/xrq730/p/8890896.html,转载请注明出处,谢谢 Redis从入门到精通:初级篇 平时陆陆续续看了不少Redis的文章了,工作中 ...

  2. python语言入门详解-python初级教程:入门详解

    python初级教程:入门详解 Crifan Li 目录 前言 .................................................................... ...

  3. WebHook入门教程:快速实现自动化运维,如自动热部署、自动重启服务、自动备份数据库等等

    WebHook入门教程 当我们向Github仓库(其他支持webhook的Git仓库都可以)Push代码后,可以通过webhook向特定URL发起一次Post请求,本篇文章所说的WebHook,就是运 ...

  4. css 浏览器调试中不可见_前端入门必会的初级调试技巧

    本文仅仅针对前端初学者,目的是[用20%不到的时间] 学会[前端最常用的部分调试技巧],如果需要最详细的调试技巧,包括调试性能优化的相关知识,文末会补充最全的文档(chrome devtool的官方文 ...

  5. selenium入门超详细教程——网页自动化操作

    文章目录 简介 一.环境安装 1.selenium安装 2.安装浏览器驱动 2.1 确定浏览器版本 2.2 下载驱动 二.基础用法 1.对页面进行操作 1.1 初始化浏览器对象 1.2 访问页面 1. ...

  6. java swing入门教程_JAVA swing初级教程(四)

    附加的swing小部件(下) JOptionPane JOptionPane 是在 Swing中类似"快捷方式"的东西.通常,作为UI开发人员,您需要向用户呈现快速信息,让用户了解 ...

  7. Linux系统编程7:入门篇之Linux项目自动化构建工具-Make/Makefile的超强使用指南

    文章目录 (1)前言 (2)依赖关系和依赖方法 (3)单文件Makefile (4)多文件Makefile (5)总结 (1)前言 对于一个大型项目,可能会涉及到很多文件,例如头文件,源文件等等.在V ...

  8. 栈溢出攻击c语言_软件漏洞分析入门(四)初级栈溢出C_修改程序流程

    To be the apostrophe which changed "Impossible" into "I'm possible"              ...

  9. java swing入门教程_JAVA swing初级教程(二)

    简单的swing小部件 JLabel组件 Swing 库中最基础的组件是JLabel.它所做的正是您所期望的:呆在那儿,看起来很漂亮,描述其他组件.下图显示了的JLabel实际应用: JLabel 不 ...

  10. 初级网站建设--入门篇

    本文适合初次想要尝试自己做一个网站而不知从何入手的朋友们.如果是有一定经验和基础的朋友建议去查阅更高级的教程. 就像当时我做第一个网站完全是因为自己的兴趣,觉得做一个网站放到互联网上能被其他人访问是一 ...

最新文章

  1. 独家 | ​PyMC3 介绍:用于概率编程的Python包
  2. Spring的quartz定时器重复执行二次的问题解决
  3. Java反射学习(java reflect)(三)
  4. sklearn自学指南(part61)--调整估计器的超参数
  5. oracle kill所有plsql developer进程
  6. mysql oracle视频网盘_动力节点MySQL数据库视频 百度云 网盘 下载
  7. 爬虫之抽屉新热榜点赞基本示例
  8. 【小睿精选·第七期】基于STM32的DIY蓝牙机械键盘
  9. JACTF misc wp
  10. 使用Apifox解决测试文件下载出错问题
  11. 07uec++多人游戏【瞄准镜效果】
  12. php 极光短信发送 api
  13. 程序员:写作能收获什么?
  14. 最原始最古老的家谱是哪种?采取怎样的形式传承给后代?
  15. 中国牛奶市场竞争态势分析及未来发展前景预测报告2022-2028年版
  16. CentOS7.4安装教程
  17. 09_NorFlash驱动
  18. OI中组合数学公式和定理90%歼灭
  19. 【Linux】内存检测工具Valgrind
  20. 两个阿里云服务器(Linux)之间传文件

热门文章

  1. arcgis多面体数据转面_多面体转 Collada (转换)
  2. 树莓派SPI连接TFT屏幕
  3. 第35讲:Xposed+模拟器的详细使用
  4. 面试官:说一下什么是熔断?什么是服务降级?
  5. 【工作规划】未来自我学习计划及发展注意事项
  6. 基于Modelingtoolkit的管网组件(Julia)
  7. “Bluetooth keeps stopping“
  8. oracle表级附加日志视图,Oracle 附加日志(supplemental log)
  9. android 禁止第三方相机,谷歌突然宣布,Android 11推出新规,第三方相机软件猝不及防...
  10. Simulink与控制系统仿真笔记01