首页
学习
活动
专区
圈层
工具
发布

问JS加减速
EN

Stack Overflow用户
提问于 2016-07-04 10:44:13
回答 1查看 1.1K关注 0票数 3

我正在为我学校的一个游戏制作公司做一个简单的关卡平台。

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

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

下面是我的代码:

代码语言: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;
                    }}
};
EN

回答 1

Stack Overflow用户

发布于 2016-07-05 10:28:34

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

另外,要小心xForce = xForce - xForce*0.25,因为这会使xForce越来越接近0,而不是完全达到0。试试xForce = xForce - 0.25 (与你的加速代码相反)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38176264

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档