将玩家移向鼠标方向?
Moving a player towards the mouse direction?
我正在寻找一行简单的代码或一个 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,但如果我正确理解你的问题,应该不会那么糟糕。在点被锁定后,您需要连接到 mousemove 事件,而不是像此处所示的简单处理:http://www.html5rocks.com/en/tutorials/pointerlock/intro/ 您需要使用中的键对每个可能的移动矢量进行矢量计算那个处理程序。实际上,您将根据鼠标增量计算每个按键对应于您的 pointerlockchange 处理程序中的 x、y、z 增量。可能没有听起来那么糟糕,因为您的鼠标增量一次只会影响最多 2 个轴。
我正在寻找一行简单的代码或一个 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,但如果我正确理解你的问题,应该不会那么糟糕。在点被锁定后,您需要连接到 mousemove 事件,而不是像此处所示的简单处理:http://www.html5rocks.com/en/tutorials/pointerlock/intro/ 您需要使用中的键对每个可能的移动矢量进行矢量计算那个处理程序。实际上,您将根据鼠标增量计算每个按键对应于您的 pointerlockchange 处理程序中的 x、y、z 增量。可能没有听起来那么糟糕,因为您的鼠标增量一次只会影响最多 2 个轴。