Javascript 苹果不会随机掉落
这是我的第一个问题,如果你能在这里指出任何错误,那就太好了,谢谢 我正在尝试使用jQuery制作一个游戏。这个想法很简单,在屏幕上你可以看到5个苹果随机繁殖,它们一个接一个地开始倒下,所以玩家必须抓住它们 错误在于所有的苹果都会一次掉下来,即使我使用随机选择和setInterval试图让苹果一次掉一个 显然有些地方出了问题。我怎么修理它 这里是我关于苹果的部分代码Javascript 苹果不会随机掉落,javascript,arrays,Javascript,Arrays,这是我的第一个问题,如果你能在这里指出任何错误,那就太好了,谢谢 我正在尝试使用jQuery制作一个游戏。这个想法很简单,在屏幕上你可以看到5个苹果随机繁殖,它们一个接一个地开始倒下,所以玩家必须抓住它们 错误在于所有的苹果都会一次掉下来,即使我使用随机选择和setInterval试图让苹果一次掉一个 显然有些地方出了问题。我怎么修理它 这里是我关于苹果的部分代码 //apples game.apples = []; game.greenApple = true; game.appleSpee
//apples
game.apples = [];
game.greenApple = true;
game.appleSpeed = 1;
game.count = 2;
game.timeDrop = 1000;
function init() {
for (i = 0; i < 5; i++) {
game.apples.push({
x: Math.floor((Math.random() * game.width / 2) + 150),
y: Math.floor((Math.random() * game.height / 3)),
size: 30,
image: 1,
green: true
});
}
loop();
}
function update() {
var intervalVar = setInterval(function () {
getRandApple()
}, 1000);
function getRandApple() {
var randApple = game.apples[Math.floor(Math.random() * game.apples.length)];
randApple.green = false;
return randApple;
}
for (i in game.apples[i]) {
if (!randApple.green) {
randApple.y += game.appleSpeed;
}
}
});
整个JavaScript文件都可以在这里找到->>这是一把小提琴,它使5个苹果以一定的间隔一个接一个地落下
http://jsfiddle.net/h3m5hqzd/6/
你可以把你的逻辑放在小提琴的钩子函数里。这就是我所做的
var appleArray = ['apple1', 'apple2', 'apple3', 'apple4', 'apple5'];
var appleExistArray = [true, true, true, true, true];
var fallenAppleCount = 0;
var refreshIntervalId = setInterval(function () {
while (true) {
// randomIndex will be within 0 to 4
var randomIndex = Math.floor((Math.random() * 5));
if (appleExistArray[randomIndex] === true) {
hook(randomIndex);
appleExistArray[randomIndex] = false;
if (fallenAppleCount++ === 4) {
clearInterval(refreshIntervalId);
}
break;
}
}
}, 1000);
function hook(randomIndex) {
var para = document.createElement("p");
var node = document.createTextNode(appleArray[randomIndex] + ' is falling');
para.appendChild(node);
document.getElementById('msgHolder').appendChild(para);
}
如果您提供一个完整代码的图像,这会更好。将您的图像上传到并使用小提琴中的链接。getRandApple中的var randApple是该函数的本地函数,而不是if中的randApple!randApple.green,它将在更新中的几行之后出现。我也不喜欢更新中的循环,因为我没有出现在循环代码中,in子句看起来很可疑。你说这是你的第一个问题,但我找不到实际的问题。问题是什么?仅供参考,您永远不应该迭代这样的数组:因为我在game.apples[i]中。这将迭代对象的所有属性,而不仅仅是数组项。用于var i=0;i