Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.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 - Fatal编程技术网

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)我只能猜测滞后-你可能需要将一些变量设为空。当你说触发你的自定义事件时,你说的只是另一个负责移除敌人、移除子弹和增加分数的函数吗?不,只是一个事件(仅自定义命名),如“单击”或“鼠标插入”。您可以将函数绑定到该事件,以执行移除子弹和增加分数等操作。从长远来看,这将更有效。如果您决定添加“盟友”或新类型的敌人,那么您所需要做的就是绑定新的处理程序,而不是在旧的处理程序之外循环所有新元素。