screeps - 如何在 Screeps 的另一个房间建造建筑工地?
问题描述
我最近才开始攻击一些一次控制 2 个房间的代码。我要求另一个房间,并且一直坐在里面。我用它来确定所有房间的建筑工地:
for(let i = 0; i < numberOfRooms; i++)
amountOfConstructionSites[i] = Game.rooms[roomName[i].name].find(FIND_CONSTRUCTION_SITES);
amountOfConstructionSites[0]
包含来自不同房间的生成,并且在使用时可见console.log()
,但每当我尝试使用类似的东西时console.log(amountOfConstructionSites[0].room.name)
,它都会返回未定义。要补充的另一个注意事项是房间确实出现在 中Game.rooms
,所以我确实在房间里有视力。真的需要一些帮助,这样我就可以继续扩展到其他房间
解决方案
在编写了与此非常相似的代码后,我找到了答案。Game.rooms[roomName[i].name].find(FIND_CONSTRUCTION_SITES)
返回一组建筑工地。我写的是在另一个数组的一个元素中存储一个数组,而不是遍历那个新数组。它返回 undefined 的方式与不遍历正常的一维数组的方式相同。我的补救措施很简单:
for(let i = 0; i < numberOfRooms; i++)
{
amountOfConstructionSites = Game.rooms[roomName[i].name].find(FIND_CONSTRUCTION_SITES);
}
这解决了我在编写代码的另一部分时遇到的两个问题。游戏使用 CPU 限制来限制您的代码,因此通过为您可以控制的每个房间存储一系列建筑工地,您将使用大量此限制,而不是在其他地方使用它。
推荐阅读
- elixir - 如何在先前组合和预加载的关联上嵌套关联?
- c# - 我使用 html.beginform 从控制器的视图发送信息,它改变了页面的整个视图 - ASP.NET
- android - Android 媒体播放器 - 无法设置数据源 - URL
- html - 为什么我的网格单元没有占用它们分配的 fr 单元?
- java - Android Studio 问题:W/RecyclerView:未连接适配器;跳过布局
- c - 使用链表下降优先级队列而不以优先级作为输入
- python - 在 tkinter 中引入新小部件时将小部件保留在其位置
- jakarta-ee - 如何使用 Quarkus 在生产环境中禁用从 /resources/META-INF/resources 访问某些静态文件?
- python - Python多处理运行过程两次?
- javascript - 如何让 JSON 数据返回?