Javascript 如何确定哪一个敌人被击中并单独摧毁它
我制作了一个游戏,你可以从屏幕两侧射击敌人。当子弹到达屏幕末端时(如果没有击中任何敌人),我已经让子弹移动并被移除,当它们与敌人碰撞时,移除敌人Javascript 如何确定哪一个敌人被击中并单独摧毁它,javascript,jquery,Javascript,Jquery,我制作了一个游戏,你可以从屏幕两侧射击敌人。当子弹到达屏幕末端时(如果没有击中任何敌人),我已经让子弹移动并被移除,当它们与敌人碰撞时,移除敌人 //------------collision----------------// if(shot === true){ bulletY = $('.bullet').position().top + 2; bulletX = $('.bullet').position().left +
//------------collision----------------//
if(shot === true){
bulletY = $('.bullet').position().top + 2;
bulletX = $('.bullet').position().left + 2;
$('.enemy').each(function(){
if($('.enemy').hasClass('smallEnemy')){
enemyY = $(this).position().top + 7;
enemyX = $(this).position().left + 7;
if(Math.abs(bulletY - enemyY) <= 9 && Math.abs(bulletX - enemyX) <=9){
$(this).remove();
score = score + 40;
bulletDestroy();
}
}
});
}
/-----------冲突----------------//
如果(shot==真){
bulletY=$('.bullet').position().top+2;
bulletX=$('.bullet').position().left+2;
$('.friend')。每个(函数(){
if($('.敌军').hasClass('small敌军')){
Enemy=$(this).position().top+7;
enemyX=$(this).position().left+7;
如果(Math.abs(bulletY-enemyY)这将在任何时候由于您的条件,一个小敌人出现时清除所有敌人。请尝试以下操作:
if($(this).hasClass('smallEnemy')){
enemyY = $(this).position().top + 7;
enemyX = $(this).position().left + 7;
if(Math.abs(bulletY - enemyY) <= 9 && Math.abs(bulletX - enemyX) <=9){
$(this).remove();
score = score + 40;
bulletDestroy();
}
if($(this).hasClass('small敌军')){
Enemy=$(this).position().top+7;
enemyX=$(this).position().left+7;
如果(Math.abs(bulletY-enemyY)我只能猜测滞后-你可能需要将一些变量设为空。当你说触发你的自定义事件时,你说的只是另一个负责移除敌人、移除子弹和增加分数的函数吗?不,只是一个事件(仅自定义命名),如“单击”或“鼠标插入”。您可以将函数绑定到该事件,以执行移除子弹和增加分数等操作。从长远来看,这将更有效。如果您决定添加“盟友”或新类型的敌人,那么您所需要做的就是绑定新的处理程序,而不是在旧的处理程序之外循环所有新元素。