Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 苹果不会随机掉落_Javascript_Arrays - Fatal编程技术网

Javascript 苹果不会随机掉落

Javascript 苹果不会随机掉落,javascript,arrays,Javascript,Arrays,这是我的第一个问题,如果你能在这里指出任何错误,那就太好了,谢谢 我正在尝试使用jQuery制作一个游戏。这个想法很简单,在屏幕上你可以看到5个苹果随机繁殖,它们一个接一个地开始倒下,所以玩家必须抓住它们 错误在于所有的苹果都会一次掉下来,即使我使用随机选择和setInterval试图让苹果一次掉一个 显然有些地方出了问题。我怎么修理它 这里是我关于苹果的部分代码 //apples game.apples = []; game.greenApple = true; game.appleSpee

这是我的第一个问题,如果你能在这里指出任何错误,那就太好了,谢谢

我正在尝试使用jQuery制作一个游戏。这个想法很简单,在屏幕上你可以看到5个苹果随机繁殖,它们一个接一个地开始倒下,所以玩家必须抓住它们

错误在于所有的苹果都会一次掉下来,即使我使用随机选择和setInterval试图让苹果一次掉一个

显然有些地方出了问题。我怎么修理它

这里是我关于苹果的部分代码

//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