这是我的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;
}
}
}
答案 0 :(得分:2)
在此if语句
中设置限制if (keydown.up) {
limit = 10;
jumping = setInterval(Jump, 150);
}
要指定特定高度,您可以对一个名为limitHeight的新变量进行delcare,并在此if语句中使用limit进行切换
if (character.y > limitHeight && !goingDown) {
// ^^^^^^^^^^^
在这个新的演示中我还将clearInterval放在keydown.up语句中来修复一些错误
答案 1 :(得分:0)
跳转完成后,将限制设置为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;
}
}
}