Javascript 比较更改数组中的多个值
我正在制作一个基本的javascript“游戏”,其中对象(敌人)从容器顶部向下移动,“飞船”向对象发射“子弹”。子弹多,敌人多。我将每个敌方对象推入一个数组,Y(顶部)值会发生变化,并被推入数组并随着每次变化而更新 这是一个将敌人推下屏幕并更新其在阵列中的_top值的间隔Javascript 比较更改数组中的多个值,javascript,arrays,object,Javascript,Arrays,Object,我正在制作一个基本的javascript“游戏”,其中对象(敌人)从容器顶部向下移动,“飞船”向对象发射“子弹”。子弹多,敌人多。我将每个敌方对象推入一个数组,Y(顶部)值会发生变化,并被推入数组并随着每次变化而更新 这是一个将敌人推下屏幕并更新其在阵列中的_top值的间隔 enemyCoord = { _left : parseInt(enemy.style.left, 10), _top : enemyTop } enemyArray.push(enemyCoord);
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碰撞值。敌人可能确实有高度,因此需要将其添加到计算中。