【问题标题】:Random 2D Zombie walking随机 2D 僵尸行走
【发布时间】:2011-11-14 13:38:17
【问题描述】:

我需要一个简单的 AI 脚本来让僵尸对象随机“走动”。我用谷歌搜索和搜索,但我能找到的只是数学函数“随机游走”上的东西。也许是相关的?

我正在使用我自己的 JavaScript 2D 引擎,我需要有类似的东西:

function update() {
    //Move using available physics engine stuff:
    // this.position, this.rotation, this.velocity, this.torque, this.acceleration
    // this.torqueAcceleration, this.drag, this.torqueDrag
}

谢谢! :)

【问题讨论】:

  • 使用随机函数来获得低百分比的机会改变方向(反转值)? - 请进一步解释你的问题是在这里。 -- 类似:if (Math.floor(Math.random()*11) == 0) // 10% chance this.acceleration *= -1;
  • 如果你想要“真正”随机的东西,你必须使用Math.random()。将其与距离和所有变量混合。我猜你说的不是人工智能?
  • 谢谢,我并不是说 AI(我已经构建了 AI),这就是我说简单的原因。只是想不出更好的表达方式 - 行为会更好
  • Mat Buckland 在他的书 Programming Game AI by Example 中解释了他称之为 Wander 的机器人行为。这使机器人四处游荡,而不仅仅是沿着笔直的路径行走。实现起来很简单。

标签: javascript artificial-intelligence 2d physics


【解决方案1】:

2 年前我确实在 C# XNA 中做过类似的脚本。

逻辑很简单。下面用伪代码说一下走一只僵尸的逻辑:

以下是僵尸可行走的空间/平台:

x = 0 ___________________________ x = 100
  1. 随机选择一个位置来生成僵尸。
  2. 如果位置超过可行走空间的一半,僵尸面朝左。不然僵尸脸就对了。

    x = 0 _____________________<_____ x = 100
    x = 0 _______>___________________ x = 100        
    
  3. 选择一个随机距离,在 5 之间移动到可步行空间的尽头。

  4. 开始步行僵尸到选择的距离。
  5. 等待 2 秒到 15 秒之间的时间(15 秒,因为有些僵尸只是喜欢发呆)。
  6. 转到第 2 步

这应该可以帮助您创建脚本,让所有僵尸在地图上漫无目的地漫游。您可以更改我在伪代码中编写的值以适应您的游戏。

【讨论】:

    【解决方案2】:

    我希望您知道这与特定编码完全无关。这纯粹是逻辑。 AI(人工智能)逻辑更具体。

    你的僵尸生成了,接下来呢?你想分配一个行为。写下一些不同的行为。

    • 站着不动
    • 步行

    如果僵尸静止不动,什么也不做。
    如果僵尸正在行走,请选择随机速度和随机方向。
    每 x 秒选择一个新行为。

    我会做什么:

    // pick behavior between 0 and 5 seconds
    var behaviorTimeout = setTimeout(randomBehavior, Math.round(Math.random() * 5000);
    
    function randomBehavior() {
        // set random values
        this.rotation = Math.random() * 360; // assuming its in degrees
        this.velocity = Math.random() * MAX_ZOMBIE_SPEED;
    
        // run this again in something between 0 and 5 seconds
        behaviorTimeout = setTimeout(randomBehavior, Math.round(Math.random() * 5000);
    }
    

    这显然只适用于步行。您需要另一个随机数来决定它应该行走还是停止。

    这是人们能想到的最基本的 AI 逻辑。如果您不再谈论僵尸,但真正有思想的生物理解和创造 AI 会变得更加困难。

    【讨论】:

      猜你喜欢
      • 2013-11-05
      • 1970-01-01
      • 1970-01-01
      • 2013-06-23
      • 2011-10-15
      • 1970-01-01
      • 1970-01-01
      • 2013-05-20
      • 2011-03-14
      相关资源
      最近更新 更多