JS加速和减速

时间:2016-07-04 02:44:13

标签: javascript

我正在为我的学校制作一个基于关卡的游戏制作平台游戏。

当用户按住右箭头键时,角色开始逐渐向右移动,并加速直到达到最大速度。它一直以最大速度行进,直到箭头键被释放。当它被释放时,角色逐渐减速并停止。

我可以让它加速,但是当钥匙被释放时,角色会向前跳并立即停止,而不是减速然后停止。

这是我的代码:

    var maxSpeed = 10; 
    var xForce = 0;
    var CharaXPos = 10;
    var CharaYPos = 200;

var draw = function() {
    background(255, 0, 0);
    image(getImage("creatures/Winston"), CharaXPos, CharaYPos, 50, 50);
        if (keyIsPressed && keyCode === RIGHT) {
            CharaXPos = CharaXPos + xForce;
            xForce = xForce + 0.25;
                if (xForce >= maxSpeed && keyIsPressed) {
                    xForce = maxSpeed;
                }
                }

        if (!keyIsPressed) {
                    while (xForce > 0) {
                        CharaXPos = CharaXPos + xForce;
                        xForce = xForce - xForce*0.25;
                    }}
};

1 个答案:

答案 0 :(得分:1)

while循环更改为if语句,以便每次调用draw()时力减少一点,而不是在一次调用中一直减少到0 draw()

另外,请注意xForce = xForce - xForce*0.25,因为这样会使xForce越来越接近0而不会到达那里。试试xForce = xForce - 0.25(加速代码的反面)。