A-Frame WASD控制移动设备上的替代品

时间:2017-05-21 18:10:50

标签: javascript mobile virtual-reality aframe webvr

我有一个A-Frame多人游戏项目,它依赖于每个用户在地图上移动,并且在桌面浏览器中运行良好。绊脚石是移动设备缺少运动控制,就像摄像机的WASD控制器一样。

您建议使用哪种解决方法?也许,添加屏幕按钮并使用jQuery触发按键事件?

或者是否有一种更直接的方法来添加一个可以改变每个屏幕按钮按下的摄像机位置的功能?在这种情况下,有没有办法找到归因于W,A,S,D键的确切函数?

我尝试过的几件事情是:

$(".up-button").click(function(){
  window.dispatchEvent(new KeyboardEvent('keypress',{keyCode: 38}));

还有一个:

var e = jQuery.Event("keydown");
e.which = 38;
$(window).trigger(e);

两者都没有产生任何变化。

2 个答案:

答案 0 :(得分:0)

你有没有试过像:

available_id

模拟按向上箭头键?

您可以模拟按下isd或向上向左下方。 虽然旋转可能有点棘手, 你必须模拟onMouseDown和onMouseMove事件。

答案 1 :(得分:0)

我明白你的意思了。大多数人甚至没有控制器来正确移动项目/游戏中的角色。我在A-Frame的演示中看到过,在我看来非常聪明。基本上如果用户俯视地板,则摄像机向前移动。这很好,因为它不需要任何外部输入,因此它适用于所有事情。

作为如何实现它,这可能是一个解决方案:

if (verticalAngle < -43) {
      //move camera
    }

如果用户俯视地板,则向前移动相机

`  .covers{
         min-width: 100%;
         height:100%;
         position: absolute;
         z-index: -1;
         left: 0;
     }`