有没有一种方法可以计算从A到B的蠕变所需的滴答声数量?

多人机器人

我知道如何获得从A到B的距离,但是考虑到所有地形因素,很难计算出沿该路径爬行所需的时间。是否有内置的方式来实现我所缺少的?这是我希望的:

path = creep.pos.findPathTo(target);
creep.ticksForPath(path, {energy: 150);

在这里{energy: 150},您可以强制计算使用该量的携带能量。

这是可能的还是计划的?

动漫t3d

游戏文档中没有这样的东西但是您可以使用findPath函数的optionsavoid参数来尝试避免沼泽瓦片。默认情况下,无论如何,它偏爱最少的步骤和最快的路线。

有一种方法可以通过找到路径然后将坐标与lookAtArea()调用进行比较来计算成本

var path = creep.room.findPath(creep, target);

path 返回:

[
    { x: 10, y: 5, dx: 1,  dy: 0, direction: Game.RIGHT },
    { x: 10, y: 6, dx: 0,  dy: 1, direction: Game.BOTTOM },
    { x: 9,  y: 7, dx: -1, dy: 1, direction: Game.BOTTOM_LEFT },
    ...
]

然后,您可以使用lookAtArea()查询顶部/左侧和底部/右侧区域

var look = creep.room.lookAtArea(10,5,11,7);

look 返回:

// 10,5,11,7
{
    10: {
        5: [{ type: ‘creep’, creep: {...} },
            { type: ‘terrain’, terrain: ‘swamp’ }],
        6: [{ type: ‘terrain’, terrain: ‘swamp’ }],
        7: [{ type: ‘terrain’, terrain: ‘swamp’ }]
    },
    11: {
        5: [{ type: ‘terrain’, terrain: ‘normal’ }],
        6: [{ type: ‘spawn’, spawn: {...} },
            { type: ‘terrain’, terrain: ‘swamp’ }],
        7: [{ type: ‘terrain’, terrain: ‘wall’ }]
    }
}

然后遍历查找每个路径步骤,并检查地形类型。

我们需要的3种类型:

  1. 平原-运动成本为2的简单地面
  2. 沼泽将移动成本提高至10。
  3. 道路将移动成本降低到1。

类似于(未经测试的,不完整的代码):

function terrainSpeed(terrainType) {
  var speed = 0;
  switch(terrainType) {
    case 'swamp':
      speed = 10;
      break;
    case 'normal':
      speed = 2;
      break;
    case 'road':
      speed = 1;
      break;
  }
  return speed;
}

// Traverse through path and check how many thicks it would take 
// based on carried energy and body
function calculateTicksRequired(path,look,energy,body) {
  var ticksRequired = 0;
  for (var i = 0; i < path.length; i++) {
    var terrainForStep = look[path[i].y][path[i].x].terrain];
    var defaultTicks = terrainSpeed(terrainForStep);
    var moveCost = 1;
    // Perform calculation by looking at bodymove cost (based on body) 
    // and carry cost (based on energy)

    // LOGIC TO CALCULATE MOVECOST
    // ...

    // Multiply that by defaultTicks
    ticksRequired += defaultTicks * moveCost;
  }
  return ticksRequired;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

有没有一种方法可以计算每个月列值从A到B花费的天数?

来自分类Dev

有没有一种方法可以计算出一定数量?

来自分类Dev

有没有一种方法可以计算R中多个因变量的阈值以上的峰值数量?

来自分类Dev

有没有一种方法可以更新ConcurrentMessageListenerContainer中的并发数量?

来自分类Dev

有没有一种方法可以动态确定cuda流的数量?

来自分类Dev

有没有一种方法可以根据文本所需的像素长度来计算所需的字体大小?

来自分类Dev

有没有一种方法可以在CSS中进行计算?

来自分类Dev

有没有一种方法可以轻松计算给定分区键的令牌?

来自分类Dev

有没有一种方法可以计算MySQL查询响应的大小?

来自分类Dev

有没有一种方法可以在mysql视图中计算余额?

来自分类Dev

有没有一种方法可以在Python中实现全局计算属性?

来自分类Dev

有没有一种方法可以按组计算比例?

来自分类Dev

有没有一种方法可以计算SQL中计数别名的总和?

来自分类Dev

有没有一种方法可以计算excel中的条纹?

来自分类Dev

有没有一种方法可以重用公式中的计算值?

来自分类Dev

有没有一种方法可以计算javascript中的聚会列表?

来自分类Dev

有没有一种方法可以通过sizeof()计算指向向量的大小?

来自分类Dev

有没有一种方法可以计算许多不同的值?

来自分类Dev

有没有一种方法可以在接口上声明计算属性?

来自分类Dev

有没有一种方法可以在表格视图中计算警报?

来自分类Dev

有没有一种方法可以将Dependabot的徽章生成到GitHub?

来自分类Dev

有没有一种方法可以将Java程序中的打印语句重定向到所需的文本文件?

来自分类Dev

有没有一种方法可以数字地计算一天中日历事件的数量?

来自分类Dev

有没有一种方法可以在build.sbt中定义所需的sbt版本?

来自分类Dev

有没有一种方法可以在填充dialogflow所需的插槽时触发其他查询

来自分类Dev

有没有一种方法可以找到达到平均数所需的数字

来自分类Dev

有没有一种方法可以减少检查是否满足枚举值所需的代码量?

来自分类Dev

有没有一种方法可以通过php函数传递多个有限数量的数组?

来自分类Dev

Java / Eclipse分析:有没有一种方法可以显示每个方法的方法调用数量?

Related 相关文章

  1. 1

    有没有一种方法可以计算每个月列值从A到B花费的天数?

  2. 2

    有没有一种方法可以计算出一定数量?

  3. 3

    有没有一种方法可以计算R中多个因变量的阈值以上的峰值数量?

  4. 4

    有没有一种方法可以更新ConcurrentMessageListenerContainer中的并发数量?

  5. 5

    有没有一种方法可以动态确定cuda流的数量?

  6. 6

    有没有一种方法可以根据文本所需的像素长度来计算所需的字体大小?

  7. 7

    有没有一种方法可以在CSS中进行计算?

  8. 8

    有没有一种方法可以轻松计算给定分区键的令牌?

  9. 9

    有没有一种方法可以计算MySQL查询响应的大小?

  10. 10

    有没有一种方法可以在mysql视图中计算余额?

  11. 11

    有没有一种方法可以在Python中实现全局计算属性?

  12. 12

    有没有一种方法可以按组计算比例?

  13. 13

    有没有一种方法可以计算SQL中计数别名的总和?

  14. 14

    有没有一种方法可以计算excel中的条纹?

  15. 15

    有没有一种方法可以重用公式中的计算值?

  16. 16

    有没有一种方法可以计算javascript中的聚会列表?

  17. 17

    有没有一种方法可以通过sizeof()计算指向向量的大小?

  18. 18

    有没有一种方法可以计算许多不同的值?

  19. 19

    有没有一种方法可以在接口上声明计算属性?

  20. 20

    有没有一种方法可以在表格视图中计算警报?

  21. 21

    有没有一种方法可以将Dependabot的徽章生成到GitHub?

  22. 22

    有没有一种方法可以将Java程序中的打印语句重定向到所需的文本文件?

  23. 23

    有没有一种方法可以数字地计算一天中日历事件的数量?

  24. 24

    有没有一种方法可以在build.sbt中定义所需的sbt版本?

  25. 25

    有没有一种方法可以在填充dialogflow所需的插槽时触发其他查询

  26. 26

    有没有一种方法可以找到达到平均数所需的数字

  27. 27

    有没有一种方法可以减少检查是否满足枚举值所需的代码量?

  28. 28

    有没有一种方法可以通过php函数传递多个有限数量的数组?

  29. 29

    Java / Eclipse分析:有没有一种方法可以显示每个方法的方法调用数量?

热门标签

归档