【问题标题】:javascript joystick for a camera用于相机的 javascript 操纵杆
【发布时间】:2017-06-26 00:55:20
【问题描述】:

嘿,我需要为相机控件创建一个操纵杆。 操纵杆需要能够向左、右、上、下四个方向移动,其中两个具有停止功能。 我在网上搜索了几个小时,最后我找到了一个叫做 nipplejs 的东西。 我已将 nipplejs 的代码附加到此线程:

var radius = 100;

var sampleJoystick = {
    mode: 'static',
    position: {
      left: '50%',
      top: '50%'
    },
    size: radius*2,
    color: 'black'
};

var joystick;
var position;
joystick = nipplejs.create(sampleJoystick);
joystick.on('start end', function(evt, data) {
  position = data;
}).on('move', function(evt, data) {
  position = data;
}).on('dir:up plain:up dir:left plain:left dir:down' +
      'plain:down dir:right plain:right',
      function(evt, data) {
  //position=data;
}
     ).on('pressure', function(evt, data) {
  position=data;
});
<script src="//yoannmoinet.github.io/nipplejs/javascripts/nipplejs.js"></script>
<div id="zone_joystick">
</div>

乍一看,它看起来像一个完美的库,但再看一遍,我发现我的操纵杆上没有方向指示器,我无法用这个操纵杆实现停止行为,也不是直观的控制对于将使用该软件的老年人。

我正在寻找具有上述功能的面板控件的替代解决方案。

功能: 可转向 4 个不同方向的操纵杆:左、右、上和下。 操纵杆也有停止功能。

【问题讨论】:

  • SO 不是要求图书馆或资源的地方。如果您的问题是关于如何将该功能添加到您的操纵杆,它会更适合这里
  • 我不是要图书馆,我是在问是否有人可以帮助我修改 nipplejs 或找到更好的解决方案来解决我的问题。我找了好几个小时,没有找到任何解决我的问题的方法。

标签: javascript angularjs canvas svg


【解决方案1】:

您必须先连接到硬件,然后才能读取其输入。您是否考虑过使用浏览器原生 GamePad API?但这并不适用于所有浏览器。

https://developer.mozilla.org/en-US/docs/Web/API/Gamepad_API

【讨论】:

  • 不,我不需要这个,我通过 C# 进程连接到相机,我从 ui 向执行实际移动的 C# 代码发送请求。我说的是 UI,我需要为这个相机构建 UI。
  • 好的,但是为什么不能在 nipplejs 功能之上覆盖一个带有清晰 UI 的 SVG? Nipplejs 似乎工作得很好。
  • 我是 svg 的新手,我可以试试这个,但我不知道从哪里开始。这样做没有任何推动或帮助的机会吗?
  • 您可以使用绝对位置的 div。将该 div 放在 nipplejs 界面的顶部。在该 div 中,您可以放置​​任何类型的图像(svg 或 png)来阐明操纵杆的含义。最后,您可以使用 CSS 使 div 不可选择。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-07-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多