让AI追逐食物

时间:2015-11-17 22:45:48

标签: javascript html5 canvas

尝试让计算机在我的琼脂克隆中使用与我制作的食物细胞相同的食物细胞跟随播放器,但它不起作用。这是我的jsFiddle。相关摘要:

如果AI的质量,则修改速度。球员的质量:

else if (playerOneMass > computerRadius) {
    this.speedX = (XXYYOfAI[0] / Math.min.apply(null, AIToFoodDists)) * this.speed.x;
    this.speedY = (XXYYOfAI[1] / Math.min.apply(null, AIToFoodDists)) * this.speed.y;
    computerX += 28 * this.speedX / computerRadius;
    computerY += 28 * this.speedY / computerRadius;
}

在for循环中提供处理食物逻辑的所需值:

var xx = cell.x - computerX;
var yy = cell.y - computerY;
AIToFoodDists.push(xx * xx + yy * yy);
XXYYOfAI = [xx, yy];

如果播放器较大,人工智能会出现搜索几个单元格,但页面只是空白。那么,我将如何使其发挥作用?

1 个答案:

答案 0 :(得分:0)

想出来。完美地工作(AI 跟着食物,但它在几秒钟之后就消失了)但是当我计算游戏循环内部的所有内容时,我的最大调用堆栈大小溢出,所以我只返回来自它的必要值(dx,dy)并处理AI.prototype.animate()中的所有其他值。 (计算距离,改变速度等)如果太靠近,也设法让AI从玩家“逃跑”。