gpt4 book ai didi

javascript - 保持函数在条件下执行

转载 作者:行者123 更新时间:2023-12-03 10:47:28 27 4
gpt4 key购买 nike

我在使用 javascript 的游戏中遇到问题:

我有一个寻路算法,它保存从起点到目的地的数组位置。一个 div 必须遵循该位置,并且我有一张与该 div 关联的图像,该图像必须遵循它。问题是 div 对于图像来说移动得太快,所以位置不好。

我正在寻找一种方法来告诉这个div,如果图像没有到达那个div位置,那么div不能立即采取下一个位置,它必须等待。

我写了这个:

if (!(destX == player.x && destY == player.y)) {
var path = grid.find(player.x / 40, player.y / 40, destX / 40, destY / 40);

for (var i = 0; i < path.length; i++) {
// If the image has arrived to the div position, function continue
if (player.image.x == player.x && player.image.y == player.y) {
player.x = path[i].position.x * 40;
player.y = path[i].position.y * 40;
}
}
}

...但它不起作用,因为当条件不匹配时,for循环会转到下一个“i”索引...

感谢您的帮助!

编辑:我会做一些精度,该函数位于更新循环内:

Player.prototype.getMouseMove = function() {

$(".tile, .target").mouseup(function() {
var destX = Math.round($(this).position().left);
var destY = Math.round($(this).position().top);

if (!(destX == player.x && destY == player.y)) {
var path = grid.find(player.x / 40, player.y / 40, destX / 40, destY / 40);

for (var i = 0; i < path.length; i++) {
console.log(i);
if (player.image.x == player.x && player.image.y == player.y) {
player.x = path[i].position.x * 40;
player.y = path[i].position.y * 40;
}
else i--;
}
}
});

}

最佳答案

稍微修改一下

 for (var i = 0; i < path.length; i++) {
// If the image has arrived to the div position, function continue
if (player.image.x == player.x && player.image.y == player.y) {
player.x = path[i].position.x * 40;
player.y = path[i].position.y * 40;
}
else i--; // It wont increase your i if condition is not satisfied.
}

关于javascript - 保持函数在条件下执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28518624/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com