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