将播放器移向鼠标方向?

时间:2016-03-30 15:03:49

标签: javascript babylonjs

我正在寻找一行简单的代码或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;
    }
}

不幸的是,这仅在轴上转换。有没有办法确定我的鼠标在哪里看并向那个点移动,而不只是在固定的轴上移动?我似乎无法找到任何具有我需要的确切方法的东西。谢谢!

1 个答案:

答案 0 :(得分:1)

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