javascript - JS加减速

标签 javascript

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

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

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

这是我的代码:

    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;
                    }}
};

最佳答案

while 循环更改为 if 语句,这样每次调用 draw() 时力都会减少一点,而不是在对 draw() 的一次调用中一直减少到 0。

此外,请注意 xForce = xForce - xForce*0.25,因为这会使 xForce 越来越接近 0,但从未完全到达那里。只尝试 xForce = xForce - 0.25(与加速代码相反)。

关于javascript - JS加减速,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38176264/

相关文章:

javascript - 如何使用 javascript 将焦点处的文本插入到标记编辑器中?

javascript - 在 JavaScript 中替换 Parse.Collections 的最佳方法是什么

javascript - 无法使用 javascript 删除和显示另一个 ul 标签?

javascript - 对表格进行排序但使一列不移动

javascript - Firefox、IE Opera -- 函数未定义

javascript - Facebook JS 影响 IE 中的 CSS/@font-face?

javascript - 添加第二个 onChange 事件?

javascript - 最佳 HTML Canvas JavaScript 库/包装器

javascript - 根据输入框选项选择下拉选项

javascript - 如何在js中使用require函数