繁体   English   中英

使角色跳进画布

[英]make a character jump inside canvas

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

如您所见,如果您按下向上按钮,马里奥(Mario)会跳至向上并向下一次,但是如果您再次按下它,他将不会跳转,我该如何解决此问题? 当我按下向上按钮时,马里奥(Mario)会跳到特定位置,例如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;

            }

        }
    }

在此if语句中设置限制

if (keydown.up) {
    limit = 10;
    jumping = setInterval(Jump, 150);
}

DEMO

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

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

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

DEMO

跳转完成后,将极限设置为0。 因此,第二跳的y位置减去了0。 在初始化时,将极限设置为10。如果我在跳转后将极限设置为10,它将再次起作用。

小提琴

相关代码:

    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;

            }

        }
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM