当按下向上箭头按钮时,在画布内部进行html 5重力尝试

时间:2014-01-30 09:48:25

标签: javascript html5 canvas

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

我想要做的基本上是重力效应。我的目标是让重力在球被挡住时发挥作用;你可以看到当球在阻挡时,重力不再起作用了,我在代码中找不到这个错误。

这是我的代码的相关部分:

if (ball.jumping) {
    if (ball.falling) {
        if (ball.y > ball.MaxJump) {
            ball.y -= gravity;
        }
        else {
            ball.falling = false;
        }
    }
    else {
        if ((ball.y < ch - ball.radius)) {
            ball.y += gravity;
            if ((ball.y < Blocks.collection[0].blockY - ball.radius)) {

                ball.y = Blocks.collection[0].blockY - ball.radius;

                if (ball.OnBlock && ball.jumping && !ball.falling) {
                    ball.MaxJump = ball.y - 100;
                }
                else{
                    ball.falling = true;
                    ball.jumping = false;
                }
            }
        }
        else {
            if (!ball.OnBlock && ball.falling)
                ball.y = ch - ball.radius;
            ball.jumping = false;
        }
    }

} else if ((keydown.up && !ball.jumping) || (keydown.up && ball.OnBlock)) {
    ball.color = "#4285F4";

    ball.jumping = true;
    ball.falling = true;
}

你能告诉我我错过了什么以及如何解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

  1. 你应该检查球的X参数,看它是否超过了阻挡。
  2. 要模拟重力,你应该不断从速度而不是高度中提取因子。