Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/446.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_Jquery_Collision - Fatal编程技术网

Javascript 如何在函数调用中自动添加参数?

Javascript 如何在函数调用中自动添加参数?,javascript,jquery,collision,Javascript,Jquery,Collision,我是初学者,正在用js/jquery做一个小游戏 我让一些敌人每X秒产卵一次(并获得一个唯一的id),然后穿过窗口。然后我想和我制造的宇宙飞船碰撞。我在这里遇到的问题是,每次一个敌人产卵时,都不可能与以前的敌人发生碰撞(只可能与最后一个产卵的敌人发生碰撞)),因此我想知道我是否制作了一个函数,创建一行调用碰撞函数,每次一个敌人产卵时它都可以工作:/ function newEnemy(enemyId) { var imgElement = $('<img>', { s

我是初学者,正在用js/jquery做一个小游戏

我让一些敌人每X秒产卵一次(并获得一个唯一的id),然后穿过窗口。然后我想和我制造的宇宙飞船碰撞。我在这里遇到的问题是,每次一个敌人产卵时,都不可能与以前的敌人发生碰撞(只可能与最后一个产卵的敌人发生碰撞)),因此我想知道我是否制作了一个函数,创建一行调用碰撞函数,每次一个敌人产卵时它都可以工作:/

function newEnemy(enemyId) {
    var imgElement = $('<img>', {
    src: 'enemy.png',
    id: 'enemy' + enemyId,
    }
return { // Object containing properties of an enemy
    id: enemyId,
}

$(function(){ //make enemies appear
     setInterval(function() {     
        var id = ++enemyIdCounter;
        var baddie = newEnemy(id);
        enemies[id] = baddie;
        $(document.body).append(baddie.img);

    setInterval(function() { // move of an enemy
以下是我尝试过但没有成功的东西(当然是因为我做得不好) 因此,这是本文标题中的问题,我如何能够自动添加第二个参数,以及如何正确地编写它

    $('#result').text(collision($('#ship'), $('#enemy1')));
    $('#result').text(collision($('#ship'), $('#enemy2')));
    $('#result').text(collision($('#ship'), $('#enemy3')));
    $('#result').text(collision($('#ship'), $('#enemy4')));

谢谢你的帮助

你已经有了一大批敌人敌人[]

要检查它们之间的碰撞,只需执行以下操作:

 var hasCollided = false;
 $.each(enemies, function(index, value) {
     hasCollided = (hasCollided || collision($('#ship'), value.img)));
 });
 $('#result').text(hasCollided);

请记住,当敌人被摧毁时,要将其从
敌人[]
阵列中移除。

您的第一个代码示例充满了错误,缺少
}
额外的
等等。。。你的代码还好吗?是的,事实上我没有写所有的东西,所以这就是为什么有额外的,对于}它们在我的代码中较低,我应该把它们放进去:/SorryEquires应该是一个数组,带有“敌人”+每个创建的敌人的id?难道我不应该把每个敌人都推到阵型上吗?(我尝试了这段代码,但没有成功,但谢谢你告诉我怎么做)你的敌人阵列已经有元素了,不是吗?我刚刚更新了它。您正在使用img元素推送新的恶棍对象。my
buddies[id]=恶棍似乎什么都不做,我试图
setInterval(function(){for(var I=0;I(对于代码,我很抱歉,每次创建敌人时,都会看到该阵列包含哪些内容,所以我创建了
敌人=新阵列;敌人推送(“#敌人”+坏人.id)
和setInterval+for for worked for敌军也许我应该使用这个数组?我真的被敌军数组打扰了。你可以把你的代码放在JSFIDLE中吗?这会让我更容易理解你在处理什么奇怪的行为。当然我正在这样做(我第一次这样做只需要一点时间)jsfiddle.net/kodoyosa/ho67t5tb/3如果您需要,我没有成功放置这些图像,我将上载它们。哦,顺便说一句,小心,目前没有什么可以阻止敌人的繁殖^ ^
    $('#result').text(collision($('#ship'), $('#enemy1')));
    $('#result').text(collision($('#ship'), $('#enemy2')));
    $('#result').text(collision($('#ship'), $('#enemy3')));
    $('#result').text(collision($('#ship'), $('#enemy4')));
 var hasCollided = false;
 $.each(enemies, function(index, value) {
     hasCollided = (hasCollided || collision($('#ship'), value.img)));
 });
 $('#result').text(hasCollided);