制作一个每 3 秒更改一次变量的函数
Making a function that changes a variable every 3rd second
我正在制作一个小游戏,我想制作一些每 3 秒改变一次 x 位置的点。我的问题是它只打印出第一个值。
我试图让它尽可能简单。
我尝试了 console.log(i),并认为循环工作正常,但 randomX var 只改变了一次。
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();
在游戏中,您通常会有一个主游戏循环,负责触发所有基于时间的事物并做出总体决策。
我正在制作一个小游戏,我想制作一些每 3 秒改变一次 x 位置的点。我的问题是它只打印出第一个值。 我试图让它尽可能简单。
我尝试了 console.log(i),并认为循环工作正常,但 randomX var 只改变了一次。
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();
在游戏中,您通常会有一个主游戏循环,负责触发所有基于时间的事物并做出总体决策。