javascript - JS中触摸后角色不会跳跃

标签 javascript collision-detection game-development

我正在用 JS 为平台游戏编写碰撞检测。由于某种原因,当我的 Angular 色顶部接触地面时,它不会再次跳跃。这是我的代码:

if (isCollideY(platforms[i].getBoundingClientRect(), document.getElementById('spriteNotReal').getBoundingClientRect()) == true) {
                if (falling == true && (jumping == false)) {
                            moveY = platforms[i].getBoundingClientRect().y + 3;
                            momentumY = 0;
                            onSolidGround = true;
                        }
            }
if (event.code == 'KeyW' && (moveY <= 300)) { 
            moveY += 1;
            move (moveX, moveY);
            momentumY = momentumY + 20;
            onSolidGround = false;
            falling = false;
            jumping = true;
        }
else if (onSolidGround == false) {
        if (momentumY < 0) {
            falling = true;
        }
        else if (momentumY > 0) {
            jumping = true;
        }
        else {
            jumping = false;
        }
        moveX += momentumX / 3 + 1;
        document.getElementById("spriteNotReal").src = "jumpmain.gif";
    }

最佳答案

我的问题有点愚蠢。检查输入代码后,我意识到跳转没有发生,因为它只会在我设置测试的“平台”上跳转,而不是在实际在平台上时跳转。这是改进后的代码:

if (event.code == 'KeyW' && (onSolidGround == true)) { 
            moveY += 1;
            move (moveX, moveY);
            momentumY = momentumY + 20;
            onSolidGround = false;
            falling = false;
            jumping = true;
        }

关于javascript - JS中触摸后角色不会跳跃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58922597/

相关文章:

c++ - 改进碰撞检测

javascript - 粒子生成速度太快 - Phaser 3

Java2D : interaction between XWindows events and frame rate

javascript - 过滤 Angular-ui 滚动

javascript - 如何在将图片上传到 Firebase 存储后检索下载 Url,以便将其保存到 Firebase 数据库?

javascript - 路由 asp.net mvc 中的 AJAX 错误

Java - 两条线的碰撞检测

javascript - 使用窗口方向修复 ipad 缩放问题

javascript - 检测一个点是在 raphael.js 形状的内部还是外部

java - 即使我用代码执行此操作,复选框也未选中