2015-06-30 114 views
-1

我正在爲學校的javascript做一個遊戲,但我遇到了更新計數器的問題。這裏是我遇到的麻煩的代碼:需要幫助更新文本,javascript

function drawUnits() { 
 
    ctx.drawImage(log, 380, 5, 32, 32); 
 
    ctx.textBaseline = "top"; 
 
    ctx.fillText(logy, 420, 21); 
 
    ctx.textBaseline = "bottom"; 
 
    ctx.fillText("Logs", 420, 21); 
 
} 
 

 
function Dayend(message) { 
 
    if (message == 1) { 
 
    ctx.width = ctx.width; 
 
    alert("You chopped some trees"); 
 
    var logy = logy + 4; 
 
    DrawUnits() 
 
    } 
 
} 
 

 
window.addEventListener('keydown', function(event) { 
 
    if (event.keyCode == 85) { 
 
    Dayend(1); 
 
    } 
 
});

隨着遲緩是其先前定義和記錄是前面定義的圖片ALS的變量。

我不明白什麼是錯的代碼,但只要我按下按鈕我得到的警報,但計數器不更新

謝謝大家,我都用你的答案和改變一些不相​​關的東西,它神奇地再次:)

+0

你的代碼是不完整的,格式混亂的,和你的標題幾乎沒有任何反映。請瀏覽[幫助]。 –

+0

ofcourse它是不完整的你要我在這裏適合500行代碼?它可能格式不好,但那是因爲我在這裏很新。雖然我並沒有真正明白你的意思。 –

+0

希望編輯清除它可以幫助任何人,但看起來問題可能與'var logy = logy + 4;'有關。我不認爲你的意思是聲明,然後立即將現在未定義的變量賦值給它自己,因爲這會導致'logy'爲'NaN'。您的函數名稱也存在一致性問題(例如'drawUnits'和'DrawUnits')。 –

回答

1

該代碼缺少幾個緊靠的括號,因此它不能運行。請修復它。另外,在你評論中你提到logy是在上述代碼之前的某個地方定義的,但是你在Dayend()函數中用sam ename重新定義了一個局部變量。這可能是你的問題,本地logy變量是設置而不是你的全局嗎?嘗試chaiging:

var logy = logy + 4; 

logy += 4; 
0

您正在重新實例化變量logyvar。嘗試用這種替代的最後幾行:

function Dayend(message) { 
    if(message == 1){ 
     ctx.width = ctx.width; 
     alert("You chopped some trees"); 
     logy = logy + 4; 
     DrawUnits() 
    } 
} 

你還需要確保logy是對全球狀態跟蹤,你是不是覆蓋在別的地方。將價值傳遞給DrawUnits()可能會更好。