gpt4 book ai didi

javascript - 创建一个每 3 秒更改一个变量的函数

转载 作者:行者123 更新时间:2023-12-01 02:41:36 26 4
gpt4 key购买 nike

我正在制作一个小游戏,我想制作一些每 3 秒改变 x 位置的点。我的问题是它只打印出第一个值。我试图让它尽可能简单。

我尝试了 console.log(i),发现循环工作正常,但 randomX v​​ar 的更改次数不会超过一次。

var randomX = 0;
var i = 0, spawnXCount = 10;

function makeRandomXPosition(){

i++;
if (i < spawnXCount){
setTimeout(makeRandomXPosition, 3000);

}
randomX = Math.floor(Math.random()*1000)+1;
}


makeRandomXPosition();
console.log(randomX);

最佳答案

你所拥有的有效。看起来它只执行一次,只是因为您放置 console.log() 的位置。将其移至函数中,您会看到它每次都在变化。

var randomX = 0;
var i = 0, spawnXCount = 10;

function makeRandomXPosition(){
i++;
if (i < spawnXCount){
setTimeout(makeRandomXPosition, 3000);
}
randomX = Math.floor(Math.random()*1000)+1;
console.log(randomX);
}


makeRandomXPosition();

如果您想对 randomX 执行某些操作,则需要在计时器上执行其他操作,或者可能更好,让该操作调用 makeRandomXPosition() 并然后再做一些事情。

var randomX = 0;
var i = 0, spawnXCount = 10;

function makeRandomXPosition(){
i++;
randomX = Math.floor(Math.random()*1000)+1;
}

function doSomething() {
makeRandomXPosition();
console.log(randomX); // do something with randomX

if (i < spawnXCount) {
setTimeout(doSomething, 3000);
}
}


doSomething();

在游戏中,您通常会有一个主游戏循环,负责触发所有基于时间的事物并做出总体决策。

关于javascript - 创建一个每 3 秒更改一个变量的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47540102/

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