0

好的,我整晚都在努力让这个工作,我是一个完整的 javascript 新手

var Hunger=8;

var interval = setInterval( increment, 10000);

    function changeImage(a) {
        document.getElementById("img").src=a;
    window.setTimeout(goIdle,20000)
    }
function goIdle() {
    document.getElementById("img").src="idle.gif";

function increment(){
        Hunger = Hunger % 24 + 1;
    if (Hunger >= 24)
    }
    if (Hunger >= 12)
        changeImage("cry.gif")
    }
}

function eat() {
    if (Hunger == 6) {
        changeImage("love.gif");
        var Hunger=0
    }
    else {
        ...
    }
}

发生的事情是当我按下按钮触发它时,

    <input type="button" value="Eat" onclick='eat();' /> 

它改变了形象,但饥饿感并没有下降

4

2 回答 2

2

您的 JavaScript 可能会停止工作,因为存在一些语法错误。我添加了标签以使其更具可读性,并在代码中添加了注释以指出这些错误:

var Hunger = 8,
    interval = setInterval(increment, 10000);

function changeImage(a) {
    document.getElementById("img").src = a;
    window.setTimeout(goIdle, 20000)
}

// So far so good, but here it begins..
function goIdle() {
    document.getElementById("img").src = "idle.gif";

    function increment() {
        Hunger = Hunger % 24 + 1;
        // Why is this if-statement here?
        // You probably want to put this line above the previous line instead.
        if (Hunger >= 24)
    }
    // Missing the '{'?
    if (Hunger >= 12)
        changeImage("cry.gif")
// Because here are two '}' while there is only one open
}
}

// Because of these errors, this line will not be reached and thus
// there is no function eat()
function eat() {
    if (Hunger == 6) {
        changeImage("love.gif");
        // Remove 'var' here because otherwise you create a new variable
        // inside this function's closure.
        var Hunger = 0
    } else {
        ...
    }
}

这些很容易修复。如果您需要这方面的帮助,请发表评论,我将编辑此答案。

于 2013-08-20T12:28:42.977 回答
0

试试这个:

我已将 var Hunger 更改为 Hunger

function eat() {
    if (Hunger == 6) {
        changeImage("love.gif");
        Hunger=0;
    }
    else {
        ...
    }
}
于 2013-08-20T12:21:27.193 回答