2013-04-24 14 views
1

У меня проблема с моими функциями, когда враг стреляет лазером. Я сделал так много отладки на этом, я просто не могу понять, почему он не работает.функция не работает должным образом

Когда у меня есть мой код, как это он будет стрелять в верхней части моего playArea, но не до дна (граница написано неправильно, потому что я сделал это с самого начала)

for (var i = 0; i < enemylasers.length; i++){ 
     if(parseInt(enemylasers[i][0].style.top) > playArea.topBoundry){ 
      enemylasers[i][1] -= laserSpeed; 
      enemylasers[i][0].style.top = enemylasers[i][1] + 'px'; 
     }else{ 
      playArea.removeChild(enemylasers[i][0]); 
      enemylasers.splice(i,1); 
     } 
    } 

Когда я изменить некоторые код вокруг того, что я думаю, может быть прав, это не так и просто не делает лазеры стрелять в любом месте. вот что я изменил.

for (var i = 0; i < enemylasers.length; i++){ 
     if(parseInt(enemylasers[i][0].style.top) > playArea.bottomBoundry){ 
      enemylasers[i][1] += laserSpeed; 
      enemylasers[i][0].style.top = enemylasers[i][1] + 'px'; 
     }else{ 
      playArea.removeChild(enemylasers[i][0]); 
      enemylasers.splice(i,1); 
     } 
    } 

Это то, что создает мои враги лазера

function createenemylaser(){ 
    if(enemylasers.length < enemymaxlasers){ 
      var laserpush = Math.floor(Math.random()*enemies.length); 
      var laser = enemylaser(); 
      laser.classList.add('enemylaser'); 
      laser.style.top = enemies[laserpush][1] + 'px'; 
      laser.style.left = parseInt(enemies[laserpush][0].offsetLeft) +'px'; 
      playArea.appendChild(laser); 
      enemylasers.push([laser, enemies[laserpush][1]]); 
    } 
} 
    setInterval(createenemylaser, 2000); 

И это мой врагов лазерами массив

enemylasers=[], 
    enemylaserspeed = 5, 
    enemymaxlasers= 8, 

И это то, что создает DIV для моего противника лазера

function enemylaser(){ 
    return document.createElement('div'); 
} 

Я надеюсь, что некоторые я могу помочь, я не так разбираюсь в javascript, но я знаю тихое abit.

+0

Просто. примечание, опечатки, такие как граница, могут быть исправлены в любом расширенном текстовом редакторе, используя «Найти и заменить все» – SomeShinyObject

+2

okay thankyou, я сделаю это сейчас – Tyler

+0

Будьте осторожны, чтобы убедиться, что ваш код не активирован в процессе – SomeShinyObject

ответ

0

С @ Chips_100 предложил мне опубликовать мое решение из секции комментариев здесь, здесь:

Вам нужно было изменить parseInt(enemylasers[i][0].style.top) > playArea.bottomBoundry к parseInt(enemylasers[i][0].style.top) < playArea.bottomBoundry как вы обратное направление ваши лазеры путешествуют в

Смежные вопросы