How to determine which enemy is hit and destroy it alone

Posted by Jon Ferriter on Stack Overflow See other posts from Stack Overflow or by Jon Ferriter
Published on 2012-12-11T04:50:29Z Indexed on 2012/12/11 5:04 UTC
Read the original article Hit count: 125

http://jsfiddle.net/5DB6K/

I have this game being made where you shoot enemies from the sides of the screen. I've got the bullets moving and being removed when they reach the end of the screen (if they didn't hit any enemy) and removing the enemy when they collide with it.

//------------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();

                }
              }

           });
        }

However, the bullet destroys every enemy if the collision check is right which isn't what I want. I want to check if the enemy has the class of either smallEnemy, medEnemy, or lrgEnemy and then do the collision check which is what I thought I had but it doesn't seem to work.

Also, the game starts to lag the more and more time goes on. Would anyone know the reason for that?

© Stack Overflow or respective owner

Related posts about JavaScript

Related posts about jQuery