让角色在画布内跳跃

时间:2014-01-20 13:09:47

标签: javascript jquery canvas

这是我的jsfiddle:http://jsfiddle.net/2tLCk/4/

你可以看到,如果你按下向上按钮,马里奥会跳得很远,然后回到原来,但如果你再次击中它,他将不会跳,我怎么能解决这个问题?当我按下向上按钮时,马里奥会跳到一个特定的位置让我们说y = 32而不是回去(总是不只是一次)?

var Jump = function () {
        if (character.y > limit && !goingDown) {
            character.y -= limit;

        } else {
            goingDown = true;
            character.y += limit;
            if (character.y >= 184) {
                clearInterval(jumping);
                goingDown = false;
                limit = 0;
                character.y = 184;

            }

        }
    }

2 个答案:

答案 0 :(得分:2)

在此if语句

中设置限制
if (keydown.up) {
    limit = 10;
    jumping = setInterval(Jump, 150);
}

DEMO

要指定特定高度,您可以对一个名为limitHeight的新变量进行delcare,并在此if语句中使用limit进行切换

if (character.y > limitHeight && !goingDown) {
               //   ^^^^^^^^^^^

在这个新的演示中我还将clearInterval放在keydown.up语句中来修复一些错误

DEMO

答案 1 :(得分:0)

跳转完成后,将限制设置为0。因此在第二次跳跃中从y位置减去0。在初始化中,您将限制设置为10.如果我在跳转后将限制设置为10,则它再次起作用。

fiddle

相关代码:

    var Jump = function () {
        if (character.y > limit && !goingDown) {
            character.y -= limit;
        } else {
            goingDown = true;
            character.y += limit;
            if (character.y >= 184) {
                clearInterval(jumping);
                goingDown = false;
                limit = 10;
                character.y = 184;

            }

        }
    }