2015-06-30 4 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); 
 
    } 
 
});

С гией является переменной, которая определена ранее и журналам картину БАС, определенные ранее.

Я не понимаю, что случилось с кодом, но как только я нажимаю на кнопку Я получаю предупреждение, но счетчик не обновляет

Спасибо всем, я использовал оба ваши ответы и изменил некоторые несвязанные вещи, и это волшебство снова работало :)

+0

Ваш код является неполной и плохо отформатирован, и ваше название вряд ли отражает что-нибудь. Пожалуйста, просмотрите [help]. –

+0

Конечно, вы не хотите, чтобы я ввел 500 строк кода здесь? И это может быть плохо отформатировано, но это потому, что я здесь совершенно новый. Я действительно не понимаю, что вы имели в виду с титовой частью. –

+0

Надеюсь, что редактирование очистит его для всех, кто мог бы помочь, но похоже, что проблема связана, вероятно, с 'var logy = logy + 4;'. Я не думаю, что вы хотите объявить, а затем сразу назначьте теперь неопределенную переменную самому себе, поскольку это приводит к тому, что 'logy' является' NaN'. У вас также есть проблемы с согласованностью в именах ваших функций (например, 'drawUnits' и' DrawUnits'). –

ответ

1

В коде отсутствует несколько близких кронштейнов, поэтому он не управляется. Пожалуйста, исправьте это. Кроме того, в комментарии вы упоминаете, что логизм определен где-то перед указанным выше кодом, но вы переопределяете локальную переменную с именем ename в функции Dayend(). Может ли это быть вашей проблемой, что локальная переменная logy устанавливается вместо вашей глобальной? Попробуйте chaiging:

var logy = logy + 4; 

в

logy += 4; 
0

Вы повторно указываете переменную logy с var. Попробуйте заменить последние несколько строк с этим:

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

Вы также должны убедиться, что logy отслеживается на глобальном состоянии, и что вы не переписывая его где-нибудь в другом месте. Возможно, вам лучше передать значение DrawUnits().

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