Screeps入门: harvest,upgrader,builder初级自动化
文章目录
- 前言
- 设计
- 角色设计
- 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初级自动化相关推荐
- Redis从入门到精通:初级篇(转)
原文链接:http://www.cnblogs.com/xrq730/p/8890896.html,转载请注明出处,谢谢 Redis从入门到精通:初级篇 平时陆陆续续看了不少Redis的文章了,工作中 ...
- python语言入门详解-python初级教程:入门详解
python初级教程:入门详解 Crifan Li 目录 前言 .................................................................... ...
- WebHook入门教程:快速实现自动化运维,如自动热部署、自动重启服务、自动备份数据库等等
WebHook入门教程 当我们向Github仓库(其他支持webhook的Git仓库都可以)Push代码后,可以通过webhook向特定URL发起一次Post请求,本篇文章所说的WebHook,就是运 ...
- css 浏览器调试中不可见_前端入门必会的初级调试技巧
本文仅仅针对前端初学者,目的是[用20%不到的时间] 学会[前端最常用的部分调试技巧],如果需要最详细的调试技巧,包括调试性能优化的相关知识,文末会补充最全的文档(chrome devtool的官方文 ...
- selenium入门超详细教程——网页自动化操作
文章目录 简介 一.环境安装 1.selenium安装 2.安装浏览器驱动 2.1 确定浏览器版本 2.2 下载驱动 二.基础用法 1.对页面进行操作 1.1 初始化浏览器对象 1.2 访问页面 1. ...
- java swing入门教程_JAVA swing初级教程(四)
附加的swing小部件(下) JOptionPane JOptionPane 是在 Swing中类似"快捷方式"的东西.通常,作为UI开发人员,您需要向用户呈现快速信息,让用户了解 ...
- Linux系统编程7:入门篇之Linux项目自动化构建工具-Make/Makefile的超强使用指南
文章目录 (1)前言 (2)依赖关系和依赖方法 (3)单文件Makefile (4)多文件Makefile (5)总结 (1)前言 对于一个大型项目,可能会涉及到很多文件,例如头文件,源文件等等.在V ...
- 栈溢出攻击c语言_软件漏洞分析入门(四)初级栈溢出C_修改程序流程
To be the apostrophe which changed "Impossible" into "I'm possible" ...
- java swing入门教程_JAVA swing初级教程(二)
简单的swing小部件 JLabel组件 Swing 库中最基础的组件是JLabel.它所做的正是您所期望的:呆在那儿,看起来很漂亮,描述其他组件.下图显示了的JLabel实际应用: JLabel 不 ...
- 初级网站建设--入门篇
本文适合初次想要尝试自己做一个网站而不知从何入手的朋友们.如果是有一定经验和基础的朋友建议去查阅更高级的教程. 就像当时我做第一个网站完全是因为自己的兴趣,觉得做一个网站放到互联网上能被其他人访问是一 ...
最新文章
- 独家 | ​PyMC3 介绍:用于概率编程的Python包
- Spring的quartz定时器重复执行二次的问题解决
- Java反射学习(java reflect)(三)
- sklearn自学指南(part61)--调整估计器的超参数
- oracle kill所有plsql developer进程
- mysql oracle视频网盘_动力节点MySQL数据库视频 百度云 网盘 下载
- 爬虫之抽屉新热榜点赞基本示例
- 【小睿精选·第七期】基于STM32的DIY蓝牙机械键盘
- JACTF misc wp
- 使用Apifox解决测试文件下载出错问题
- 07uec++多人游戏【瞄准镜效果】
- php 极光短信发送 api
- 程序员:写作能收获什么?
- 最原始最古老的家谱是哪种?采取怎样的形式传承给后代?
- 中国牛奶市场竞争态势分析及未来发展前景预测报告2022-2028年版
- CentOS7.4安装教程
- 09_NorFlash驱动
- OI中组合数学公式和定理90%歼灭
- 【Linux】内存检测工具Valgrind
- 两个阿里云服务器(Linux)之间传文件
热门文章
- arcgis多面体数据转面_多面体转 Collada (转换)
- 树莓派SPI连接TFT屏幕
- 第35讲:Xposed+模拟器的详细使用
- 面试官:说一下什么是熔断?什么是服务降级?
- 【工作规划】未来自我学习计划及发展注意事项
- 基于Modelingtoolkit的管网组件(Julia)
- “Bluetooth keeps stopping“
- oracle表级附加日志视图,Oracle 附加日志(supplemental log)
- android 禁止第三方相机,谷歌突然宣布,Android 11推出新规,第三方相机软件猝不及防...
- Simulink与控制系统仿真笔记01