我正在制作游戏,我需要精灵才能找到最接近的食物"走向他们。我无法找到正确的代码来实现这一目标。他们似乎得到了第一种食物,但是当有多种食物时,精灵在每种食物之间都是优柔寡断的,并且不足以吃任何食物。仍然没有多少经验可以理解阵列。
我正在使用cocos2d框架。
update:function (dt) {
for (var i = 0; i < this._gubz.length; i++)
{
var gub = this._gubz[i];
if (this._food.length>0)
{
var distances = new Array();
for (var w = 0; w < this._food.length; w++)
{
var food = this._food[w];
var location = food.getPosition();
var distance = cc.pDistance(location,gub.getPosition());
}
var smallestDistance = Math.min.apply(Math,distances);
var indexOfNumber = distances.indexOf(smallestDistance);
var closestFood = this._food[indexOfNumber];
gub.currentTarget = indexOfNumber;
}
}
for (var i = 0; i < this.foodToRemove.length; i++)
{
this.removeChild(this.foodToRemove[i].GetUserData());
this._food.splice(this._food.indexOf(this.foodToRemove[i].GetUserData()),1)
this.world.DestroyBody(this.foodToRemove[i]);
}
}
答案 0 :(得分:0)
如果要对javascript数组应用排序,请使用排序变量。
this._food = this._food.sort(function(a, b) {
return a.smallestDistance > b.smallestDistance ? -1 : a.smallestDistance < b.smallesDistance ? 1 : 0;
});
删除项目使用过滤器项目:
this._food = this._food.filter(function(element) {
return elementDoesNotExist(element);
});
应该让你开始。
HTH