Javascript 比较更改数组中的多个值

Javascript 比较更改数组中的多个值,javascript,arrays,object,Javascript,Arrays,Object,我正在制作一个基本的javascript“游戏”,其中对象(敌人)从容器顶部向下移动,“飞船”向对象发射“子弹”。子弹多,敌人多。我将每个敌方对象推入一个数组,Y(顶部)值会发生变化,并被推入数组并随着每次变化而更新 这是一个将敌人推下屏幕并更新其在阵列中的_top值的间隔 enemyCoord = { _left : parseInt(enemy.style.left, 10), _top : enemyTop } enemyArray.push(enemyCoord);

我正在制作一个基本的javascript“游戏”,其中对象(敌人)从容器顶部向下移动,“飞船”向对象发射“子弹”。子弹多,敌人多。我将每个敌方对象推入一个数组,Y(顶部)值会发生变化,并被推入数组并随着每次变化而更新

这是一个将敌人推下屏幕并更新其在阵列中的_top值的间隔

enemyCoord = {
    _left : parseInt(enemy.style.left, 10),
    _top : enemyTop
}

enemyArray.push(enemyCoord);

var enemyInterval = setInterval(enemyMovement, 7 );

function enemyMovement(){
    enemyTop += 1;
    enemyArray[enemyCount]._top = enemyTop; // enemyCount is unique number given to each enemy object
    enemy.style.top = enemyTop + 'px';

    if (enemyTop >= document.getElementById('gc_1').offsetHeight -20 ) {
        clearInterval(enemyInterval);
        container.removeChild(enemy);
    }   
}
这是项目符号运动,我试图使这些值符合

function shoot(bullet, topValue) {

    var topValue = parseInt(topValue, 10);
    var bulletTop = topValue;
    var bulletInterval = setInterval(bulletMovement, 7);
    var arrayLength = enemyArray.length;


    function bulletMovement (){
        bulletTop = bulletTop - 1 ;
        bullet.style.top = bulletTop + 'px';
        if (bulletTop <= 20) {
            var container = document.getElementById('gc_1');
            container.removeChild(bullet);
            clearInterval(bulletInterval);
        }


        // This is the part I really need help with! Where the values meet
        for (var i=0;i<arrayLength;i++) {
            if (bulletTop === enemyArray[i]._top) {
                alert('we met :)');
            }
        }
    }
}
功能射击(子弹,顶值){
var-topValue=parseInt(topValue,10);
var bulletTop=topValue;
var bulletInterval=设置间隔(bulletMovement,7);
var arrayLength=enemyArray.length;
功能指令移动(){
bulletTop=bulletTop-1;
bullet.style.top=bulletTop+‘px’;

你的问题是什么?(请阅读。)抱歉,Ed!当我发布这篇文章时,我有点累了,我在文章的底部添加了这个问题。@user3717403我不明白的是:如果你只检查子弹的顶部位置,并不意味着子弹实际上击中了敌舰。你丢失了X坐标。@user3717403也
var container=document.getElementById('gc_1')
bulletMovement()
循环中根本没有执行!屏幕上的每一个子弹-在移动时,它们会一次又一次地得到一个
\gc\u 1
元素,实际上您可以将该元素最初存储在游戏脚本的顶部。@user3717403也
if(bulletTop==enemyArray[i]。\u top)
可能不是正确的Y碰撞值。敌人可能确实有高度,因此需要将其添加到计算中。