2013-04-24 244 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, 

而這就是我的敵人激光產生的股利

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

我希望有一些人們可以幫助,我不是在JavaScript中經歷過,但我知道安靜的升技。

+0

剛。一個筆記,像邊界拼寫錯誤可以在任何先進的文本編輯器中使用查找和替換全部來修復 – SomeShinyObject 2013-04-24 11:12:42

+2

好吧謝謝我現在應該這樣做 – Tyler 2013-04-24 11:13:04

+0

要小心,以確保您的代碼不會在這個過程中被擡高 – SomeShinyObject 2013-04-24 11:14:42

回答

0

由於@ Chips_100建議我應該張貼在這裏評論部分我的解決辦法,那就是:

你需要改變parseInt(enemylasers[i][0].style.top) > playArea.bottomBoundryparseInt(enemylasers[i][0].style.top) < playArea.bottomBoundry因爲你已經轉變了激光在行進的方向