需要帮助更新文本,javascript

时间:2015-06-30 21:26:21

标签: 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);
  }
});




logy是一个先前定义的变量,log是前面定义的图片。

我不知道代码有什么问题,但是只要按下按钮我就会收到警报但计数器没有更新

谢谢大家,我使用了你的答案并改变了一些不相关的东西,它再次神奇地起作用了:)

2 个答案:

答案 0 :(得分:1)

代码缺少几个小括号,因此它不可运行。请修理它。另外,在你评论中你提到logy是在上面的代码之前的某个地方定义的,但你是在Dayend()函数中用sam ename重新定义一个局部变量。这可能是你的问题,本地logy变量是设置而不是全局变量?尝试chaiging:

var logy = logy + 4;

logy += 4;

答案 1 :(得分:0)

您正在使用logy重新实例化变量var。尝试用以下代码替换最后几行:

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

您还需要确保在全局状态中跟踪logy,并且您不会在其他地方覆盖它。您可能最好将值传递给DrawUnits()