javascript - 将玩家移向鼠标方向?

标签 javascript babylonjs pointerlock

我正在寻找一行简单的代码或 API(如果有那么简单的话)。

我正在使用 BabylonJS 制作在线游戏,但遇到了问题。我在文档中找不到任何内容来支持我的问题。我正在使用

canvas.requestPointerLock = canvas.requestPointerLock || canvas.mozRequestPointerLock;
    canvas.requestPointerLock();

要锁定鼠标,通常需要单击并拖动。我还使用这个运动脚本进行基本运动:

function KEY_DOWN(event)
{
    if (event.keyCode == 87)
    {
        player.position.z -= 0.5;
    }
    else if (event.keyCode == 65)
    {
        player.position.x += 0.5;
    }
    else if (event.keyCode == 83)
    {
        player.position.z += 0.5;
    }
    else if (event.keyCode == 68)
    {
        player.position.x -= 0.5;
    }
}

不幸的是,这只在轴上进行变换。有什么方法可以确定我的鼠标正在寻找的位置并朝该点移动,而不仅仅是在固定轴上移动?我似乎找不到任何具有我需要的确切方法的东西。谢谢!

最佳答案

我不知道任何 API,但如果我正确理解你的问题,它应该不会那么糟糕。锁定点后,您需要 Hook mousemove 事件,而不是像此处所示的简单处理:http://www.html5rocks.com/en/tutorials/pointerlock/intro/您需要使用该处理程序中的键针对每个可能的移动向量进行向量计算。实际上,您可以根据鼠标增量计算在指针锁定更改处理程序中每个按键对应的 x、y、z 增量。可能没有听起来那么糟糕,因为您的鼠标增量一次只会影响最多 2 个轴。

关于javascript - 将玩家移向鼠标方向?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36312739/

相关文章:

javascript - 如何使用 jquery 操作元素,使它们匹配它们的 css-Selector "nth-of-type"

javascript - 我如何处理 Casperjs 中涉及模式弹出窗口的异步请求?

javascript - 使用 PointerLockControls 时禁用转义选项

javascript - 在 TypeScript 中导入时为 "Uncaught SyntaxError: Unexpected token {"

babylonjs - 使用 BabylonJS 获取黑色屏幕截图

javascript - 三.js Pointerlock控制沿y轴射击

javascript - 如何在Three.js中添加PointerLockControl?

javascript - 原型(prototype)悬停内容和子项

javascript - Rails 3 - 如何动态创建与参数关联的 html 元素 [ :id]?

javascript - 如何使用drawtext在babylon JS动态纹理中插入换行符?