Javascript 移动设备上的A-Frame WASD控件替换

Javascript 移动设备上的A-Frame WASD控件替换,javascript,mobile,virtual-reality,aframe,webvr,Javascript,Mobile,Virtual Reality,Aframe,Webvr,我有一个A-Frame多人游戏项目,它依赖于每个用户在地图上移动,并且在桌面浏览器中运行良好。绊脚石是移动设备中缺少运动控制,就像照相机的WASD控制一样 你会建议什么解决方法?也许,用jQuery添加屏幕按钮和触发按键事件 或者是否有一种更直接的方法来添加一个功能,该功能可以改变每次按下屏幕上的按钮时相机的位置?在这种情况下,是否有办法找到W、a、S、D键的确切功能 我尝试过的几件事包括: $(".up-button").click(function(){ window.dispatchE

我有一个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);

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

您是否尝试过以下方法:

window.dispatchEvent(new KeyboardEvent('keypress',{keyCode: 38} )  );
要模拟按向上箭头键

您可以模拟按wasd或上下左右。 不过,旋转可能会有点棘手,
您必须模拟onMouseDown和onMouseMove事件。

我明白您的意思。大多数人甚至没有一个控制器来正确移动项目/游戏中的角色。在我看来,我在a-Frame的演示中看到了一个相当聪明的东西。基本上,如果用户向下看地板,相机就会向前移动。这是好的,因为它不需要任何外部输入,所以它可以在任何情况下工作

至于如何实施,这可能是一个解决方案:

//First calculate the verticle angle of the camera

     var verticalAngle = getVerticalAngle(camera.getWorldDirection());
        console.log('vertical angle:' + verticalAngle);
        function getVerticalAngle(cameraVector) {
            return vRadiansToDegrees(Math.atan(cameraVector.y));
        }

        function vRadiansToDegrees(radians) {
            return radians * 180 / Math.PI;
        }
然后,如果用户向下看地板,则向前移动摄像头

if (verticalAngle < -43) {
      //move camera
    }
if(垂直角<-43){
//移动摄像机
}

还有针对移动设备的“onTouch”事件。我即将开始工作,但我会寻找前几天看到的利用了它们的.js存储库。你已经等了18天,没有其他答案。谢谢!我曾尝试用div模拟按键事件,但之前运气不佳。我会试试你的线路,让你知道。我在易趣上买了一个便宜的5美元的Mocute蓝牙遥控器。我试着用它来模拟点击。但仍然困惑。这也是一个选择!我真的很想在没有额外硬件的情况下解决这个问题,这样任何拥有智能手机的人都可以立即连接和移动。我找到了这个repo,其中包括一个用于触摸控制的脚本,但仍在试图找出如何实现它:是的,我喜欢用于测试选项的触摸控制,但我的网站是坐在手机或平板电脑上的桌上骑行时使用的(希望不是开车!)或者将手机插入头戴式显示屏,以获得完整的3D VR体验。这就是我带遥控器的原因,在上次的情况下,我不得不用触摸屏。关于你的多人游戏项目的更多信息将会很有帮助(也很有趣)。这是非常巧妙的!当我有时间的时候,我会试试它,并会让你知道它是如何运行的+发布一个链接。谢谢你的建议。你知道我怎样才能调用精确的函数,使相机沿着相机指向的方向平稳移动,就像W键一样?当你按下W键时,你调用的是什么函数?您应该使用与按键相同的功能。就我个人而言,我使用这个:这节省了我很多时间。这是一个很好的参考。A-Frame的东西是-stock WASD movement是预装的,我不太确定在哪里可以找到它。哦,我明白了,我以前从未使用过A-Frame,所以我无法帮上忙。