正如您在此处看到的,我有一个小功能,它将迫使玩家进入特定的坐标。基本上,作为函数参数,我设置了我希望玩家去的坐标数组。如您在下面的示例中看到的,只要它命中其他位置,就意味着玩家停留在特定的坐标上。并且它向索引添加+1,因此它将获得第二个坐标。我正在尝试在“其他”标签中运行一个函数,如果该函数返回true,则我想立即运行“其他”标签上的代码。我该如何实现? :P
var player = {
x: 21,
y: 24
}
function goCoords(data) {
var index = 0;
var i = setInterval(function() {
if (index < data.length) {
var coords = data[index];
if (!(Math.abs(player.x - coords.x) <= 0 && Math.abs(player.y - coords.y) <= 0)) {
//go(coords.x, coords.y); It will trying to go to these coords
} else {
//If on coords, run a function, and wait for return true
//And run the code below again
if (index < coords.length) {
index++;
}
}
} else {
clearInterval(i);
}
}, 150);
}
goCoords([{ x: 21, y: 24 }, { x: 21, y: 29 }]);
答案 0 :(得分:0)
将ttl
设置为您要运行相同代码的数量。
async function goCoords(data) {
// ...
else {
await recursiveFunction(...)
}
}
async recursiveFunction(..., ttl = 2) {
if (ttl < 1) {
return
}
let result = await theFunctionThatMayReturnTrue()
if (result) {
// code to be executed n times (n = ttl)
await recursiveFunction(..., --ttl)
}